首页 文章

如何使用Laravel Passport和自定义用户名列

提问于
浏览
22

现在我正在使用类似的东西来验证我的基站上的用户:

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

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

2 回答

  • 60

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

    此方法将username作为参数,并返回用户模型

    例如:

    class User extends Authenticatable
    {
        use HasApiTokens, Notifiable;
    
        // ... some code
    
        public function findForPassport($username) {
            return $this->where('id', $username)->first();
        }
    }
    
  • 4

    回答有点太迟了,但我一直很难想到这个问题,所以为了完整起见,可能会帮助其他人 .

    如果您看一下this part of passport's code,您会发现它还会查找 validateForPassportPasswordGrant 方法,因此除了Alexander 's answer, that'之外,您还可以使用自定义字段对用户进行身份验证 .

    希望它可以帮助某人 .

相关问题