【问题标题】:laravel passport custom password columnlaravel 护照自定义密码栏
【发布时间】:2017-03-29 03:46:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: laravel-5.3 laravel-passport


    【解决方案1】:

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

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

        public function getAuthPassword()
        {
            return $this->PasswMd;
        }
    

    【讨论】:

      【解决方案2】:

      Passport/Bridge 要求有一个名为validateForPassportPasswordGrant($password) 的方法,您可以在您的user model 中覆盖它,如果您不覆盖它,它将在您的用户table 中查找password 列。我不完全确定他们为什么没有将其配置为使用 Authenticatable 方法 getAuthPassword...

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2017-12-28
          • 1970-01-01
          • 2017-10-05
          • 2017-12-23
          • 2023-03-22
          • 2015-01-22
          • 1970-01-01
          • 1970-01-01
          • 2021-12-03
          相关资源
          最近更新 更多