如何使用 Laravel 的 Passport 包来验证不同的密码列。
如果我想从不同的“用户名”列进行身份验证,可以使用以下代码完成:
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
它将以 Id 作为列。如果我想使用不同的“密码”列怎么办。表中具有不同名称的列,例如“uid_token”。
如何使用 Laravel 的 Passport 包来验证不同的密码列。
如果我想从不同的“用户名”列进行身份验证,可以使用以下代码完成:
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
它将以 Id 作为列。如果我想使用不同的“密码”列怎么办。表中具有不同名称的列,例如“uid_token”。
将此validateForPassportPasswordGrant
方法添加到用户模型为我完成了这项工作(“PasswMd” - 自定义列名):
public function validateForPassportPasswordGrant($password)
{
return Hash::check($password, $this->PasswMd);
}
Passport/Bridge 要求调用一种方法,validateForPassportPasswordGrant($password)
您可以在您的. 我不完全确定他们为什么没有将其配置为使用方法 getAuthPassword ...user model
password
table
Authenticatable
虽然上述解决方案很棒,但还有另一种方法可以实现它,它在 Laravel 8 中对我有用。
对于未来的读者,我在这里提供了代码,他们需要添加到他们的模型中并像这样返回自定义密码列。
public function getAuthPassword()
{
return $this->PasswMd;
}