gpt4 book ai didi

authentication - 方法 Illuminate\Auth\RequestGuard::attempt 不存在

转载 作者:行者123 更新时间:2023-12-01 16:46:24 27 4
gpt4 key购买 nike

我对 laravel 和 lumen 都是新手。我正在lumen 5.6中使用oauth2.0创建登录api,我已经安装了护照并生成了 token 。下面是我的登录 Controller 功能,它工作正常。它返回 token 。

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Route;
//use Illuminate\Support\Facades\DB;
use App\User;
use Auth;

public function login(Request $request)
{
global $app;
$proxy = Request::create(
'/oauth/token',
'post',
[
'grant_type' => env('API_GRAND_TYPE'),
'client_id' => env('API_CLIENT_ID'),
'client_secret' => env('API_CLIENT_SECRET'),
'username' => $request->username,
'password' => $request->password,
]

);
return $app->dispatch($proxy);
}

由于除了用户名和密码之外我还必须检查用户状态,因此我需要首先检查用户凭据。所以我确实喜欢这个。

public function login(Request $request)
{

$credentials = $request->only('username', 'password');

if (Auth::attempt($credentials)) {
return ['result' => 'ok'];
}

return ['result' => 'not ok'];
}

Here i am getting this error.
Method Illuminate\Auth\RequestGuard::attempt does not exist.

So i tried Auth::check instead of Auth::attempt.
Now there is no error but it always return false even though the credentials are valid.

I searched a lot for a solution but i didn't get.

最佳答案

守卫功能仅适用于带有 Web 中间件的路由

public function login() {

if(Auth::guard('web')->attempt(['email' => $email, 'password' => $password], false, false)) {requests
// good
} else {
// invalid credentials, act accordingly
}
}

关于authentication - 方法 Illuminate\Auth\RequestGuard::attempt 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49026557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com