【问题标题】:Laravel Nova: authenticate with PassportLaravel Nova:使用 Passport 进行身份验证
【发布时间】:2019-01-31 19:40:39
【问题描述】:

如何配置 Laravel Nova 以使用 Passport?目前,我可以通过常规 /login(使用 Auth 中间件)路由登录我的应用程序,Nova 管理将接受我经过身份验证的用户,但是如果我尝试在 /nova 登录,它声称“这些凭据与我们的记录不匹配。”

我已经查看了https://github.com/laravel/nova-issues,但没有找到解决方案。

【问题讨论】:

    标签: laravel laravel-nova


    【解决方案1】:

    我遇到了同样的问题。我不能 100% 确定它与您的问题相同,但我想我会分享,因为没有人提交答案。

    就我而言,我的用户模型上有一个setPasswordAttribute mutator,用于在保存时散列密码。 Nova 已经对密码进行了哈希处理,因此它被哈希了两次。可能不是最好的解决方案,但我只是做了以下:

    /** App\Models\User.php */
    ...
    public function setPasswordAttribute($value)
    {
        $password = starts_with($value, '$2y$') ? $value : Hash::make($value);
        $this->attributes['password'] = $password;
    }
    

    【讨论】:

      【解决方案2】:

      如果 User 模型具有“setPasswordAttribute”,默认情况下会散列密码,请在 nova 模型中使用:

      Password::make('Password')
           ->onlyOnForms()
           ->creationRules('required', 'string', 'min:6')
           ->updateRules('nullable', 'string', 'min:6')
           ->fillUsing(function (NovaRequest $request, $model, $attribute, $requestAttribute) {
               if (! empty($request->{$requestAttribute})) {
                   $model->{$attribute} = $request[$requestAttribute];
               }
           }),
      

      【讨论】:

        猜你喜欢
        • 2019-12-20
        • 2020-12-30
        • 2018-05-07
        • 2017-10-07
        • 2017-07-08
        • 1970-01-01
        • 2020-04-13
        • 1970-01-01
        • 2017-05-13
        相关资源
        最近更新 更多