如何使用Laravel的Passport程序包验证其他密码列。
如果我想从其他“用户名”列进行身份验证,可以使用以下代码完成:
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
它将使用Id作为列。如果我想使用其他“密码”列,该怎么办?表中的一列具有不同的名称,例如'uid_token'。
答案 0 :(得分:7)
Passport / Bridge要求您在用户模型中覆盖名为validateForPassportPasswordGrant($ password)的方法,如果不覆盖它,则会在用户表中查找“密码”列。我不完全确定为什么他们没有将它配置为使用Authenticatable方法getAuthPassword ...
答案 1 :(得分:5)
将此validateForPassportPasswordGrant
方法添加到用户模型为我完成了工作(" PasswMd" - 自定义列名称):
public function validateForPassportPasswordGrant($password)
{
return Hash::check($password, $this->PasswMd);
}