laravel护照自定义密码栏

Jay*_*eth 4 laravel-5.3 laravel-passport

如何使用Laravel的Passport程序包验证不同的密码列.

如果我想从不同的"用户名"列进行身份验证,可以使用以下代码完成:

    public function findForPassport($username) {
        return $this->where('id', $username)->first();
    }
Run Code Online (Sandbox Code Playgroud)

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

小智 7

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


ego*_*ego 5

将此validateForPassportPasswordGrant方法添加到User模型中为我完成了工作(“ PasswMd”-自定义列名):

public function validateForPassportPasswordGrant($password)
{
    return Hash::check($password, $this->PasswMd);
}
Run Code Online (Sandbox Code Playgroud)