如何将 Laravel Nova 配置为与 Passport 一起使用?目前我可以通过常规 /login(使用 Auth 中间件)路由登录我的应用程序,Nova 管理将接受我的认证用户,但是如果我尝试在 /nova 登录,它声称“这些凭据与我们的记录不匹配。”
我已经查看了https://github.com/laravel/nova-issues但没有找到解决方案。
如何将 Laravel Nova 配置为与 Passport 一起使用?目前我可以通过常规 /login(使用 Auth 中间件)路由登录我的应用程序,Nova 管理将接受我的认证用户,但是如果我尝试在 /nova 登录,它声称“这些凭据与我们的记录不匹配。”
我已经查看了https://github.com/laravel/nova-issues但没有找到解决方案。
我遇到过同样的问题。我不能 100% 确定它与您的问题相同,但我想我会分享,因为没有人提交答案。
就我而言,我的setPasswordAttribute
用户模型上有一个修改器,用于在保存时对密码进行哈希处理。Nova 已经对密码进行了哈希处理,因此它被哈希了两次。可能不是最好的解决方案,但我只是做了以下事情:
/** App\Models\User.php */
...
public function setPasswordAttribute($value)
{
$password = starts_with($value, '$2y$') ? $value : Hash::make($value);
$this->attributes['password'] = $password;
}
如果用户模型有'setPasswordAttribute',默认情况下散列密码,在新星模型中使用:
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];
}
}),