gpt4 book ai didi

php - Auth::attempt() 在 Laravel 6.4 中抛出错误 "Call to undefined method Illuminate\Auth\TokenGuard::attempt()"

转载 作者:行者123 更新时间:2023-12-02 03:07:24 30 4
gpt4 key购买 nike

最近尝试了一下最新的Laravel(6.4)。正在尝试实现基于 API 的简单登录功能。没有使用 Passport 或 Tymon 的 JWT 等任何软件包。我使用了非常基本的身份验证(只需在用户表中保留一列命名为“api_token”)。但出现错误说

Symfony\Component\Debug\Exception\FatalThrowableError : Call to undefined method Illuminate\Auth\TokenGuard::attempt()

这是我的 Controller

//only method in the controller, so used `__invoke` method.
    public function __invoke(Request $request)
{
$request->validate([
'email' => 'required',
'password' => 'required',
]);

$credentials = $request->only(['email', 'password']);
$credentials['active'] = 1;

if (Auth::guard('api')->attempt($credentials)) {
return response()->json([
'data' => 'Wrong credential given'
]);
}

return response()->json([
'data' => \auth()->user()
]);
}

这是我的 config/auth.php 文件状态。我正在使用 api 防护进行访问。但 token 应该在登录后出现。在这里,我无法登录。

    'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],

'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
]

最佳答案

API Guard 没有尝试方法,也没有任何其他形式的用户登录。它所做的只是保护路线。要对用户进行身份验证,您仍应使用默认防护。

关于php - Auth::attempt() 在 Laravel 6.4 中抛出错误 "Call to undefined method Illuminate\Auth\TokenGuard::attempt()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58630073/

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