6

如何使用 Laravel 的 Passport 包来验证不同的密码列。

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

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

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

4

3 回答 3

10

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

public function validateForPassportPasswordGrant($password)
{
    return Hash::check($password, $this->PasswMd);
}
于 2017-08-04T15:37:57.967 回答
8

Passport/Bridge 要求调用一种方法,validateForPassportPasswordGrant($password)您可以在您的. 我不完全确定他们为什么没有将其配置为使用方法 getAuthPassword ...user modelpasswordtableAuthenticatable

于 2017-01-12T16:55:41.883 回答
0

虽然上述解决方案很棒,但还有另一种方法可以实现它,它在 Laravel 8 中对我有用。

对于未来的读者,我在这里提供了代码,他们需要添加到他们的模型中并像这样返回自定义密码列。

    public function getAuthPassword()
    {
        return $this->PasswMd;
    }
于 2022-02-15T17:36:56.470 回答