laravel护照自定义密码栏

时间:2016-11-15 09:56:27

标签: laravel-5.3 laravel-passport

如何使用Laravel的Passport程序包验证其他密码列。

如果我想从其他“用户名”列进行身份验证,可以使用以下代码完成:

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

它将使用Id作为列。如果我想使用其他“密码”列,该怎么办?表中的一列具有不同的名称,例如'uid_token'。

2 个答案:

答案 0 :(得分:7)

Passport / Bridge要求您在用户模型中覆盖名为validateForPassportPasswordGrant($ password)的方法,如果不覆盖它,则会在用户表中查找“密码”列。我不完全确定为什么他们没有将它配置为使用Authenticatable方法getAuthPassword ...

答案 1 :(得分:5)

将此validateForPassportPasswordGrant方法添加到用户模型为我完成了工作(" PasswMd" - 自定义列名称):

public function validateForPassportPasswordGrant($password)
{
    return Hash::check($password, $this->PasswMd);
}