【发布时间】:2021-03-17 15:22:05
【问题描述】:
所有护照功能都有效,护照安装正确。 我猜问题出在 Laravel 和 Passport 连接的地方, 因为我无法在登录操作时验证用户的凭据。 验证是请求请求,如果我传递传入的参数请求,验证方法只返回true。
class AuthController extends Controller
{
public function login(Request $request)
{
$login = $request->only(['username', 'password']);
dd(Auth::validate($login));
}
}
错误:
未定义的索引:文件中的请求 D:\oms\api\vendor\laravel\framework\src\Illuminate\Auth\RequestGuard.php 在第 71 行
配置/auth.php
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
],
class User extends Authenticatable
{
use HasApiTokens,
protected $fillable = [
'username',
'password',
];
}
拜托,随便什么都好:)
【问题讨论】:
-
您查看错误消息指向您的代码了吗?这不是建议您传递带有
request元素的数组吗? -
此外,这一切都是由登录控制器通过导入
Illuminate\Foundation\Auth\AuthenticatesUsers特征自动完成的。您不需要手动执行此操作。 -
我删除了那个控制器,现在我自己做,如果我将
request传递给方法,它总是返回 true; -
我认为你可以在 'api' 守卫中这样调用。
Auth::guard('web')->validate(['email' => 'john@example.com', 'password' => '12345678']);
标签: php laravel api laravel-passport