如何将Laravel Passport与自定义用户名列一起使用

2022-08-30 11:19:14

现在,我正在使用类似的东西来对我的基本站点上的用户进行身份验证:

if (Auth::attempt($request->only(['id', 'password']))) {
            //
}

如何修改此代码以使用自定义列作为用户名?https://laravel.com/docs/5.3/passport#password-grant-tokens


答案 1

您可以在用户模型中使用 findForPassport 方法。

该方法以用户名为参数,返回用户模型

例如:

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;

    // ... some code

    public function findForPassport($username) {
        return $this->where('id', $username)->first();
    }
}

答案 2

回答起来有点太晚了,但我一直很难弄清楚这一点,所以为了完整性,也许将来会帮助别人。

如果您查看护照代码的这一部分,您会发现它还在寻找一种方法,因此除了Alexander的答案之外,这就是使用自定义字段对用户进行身份验证的方法。validateForPassportPasswordGrant

希望它能帮助别人。


推荐