Laravel 5 验证:这些凭据与我们的记录不符
Laravel 5 Auth: These credentials do not match our records
我刚开始接触 Laravel 5,我来自 Laravel 4 环境,所以应该不会太难。
听说L5内置了一个很简洁的认证系统。
我已经设置了从数据库到视图的所有内容。
注册过程运行正常,之后它会自动让我登录。但是当我注销并尝试重新登录时,出现此错误:
These credentials do not match our records.
我不确定出了什么问题。我必须手动编写登录控制器吗?它在 L5 中如何工作?
我遇到了同样的问题。我的原因是
我在我的 User
模型中定义了 setPasswordAttribute
,所以每次我输入纯密码,它在发送到数据库之前进行哈希处理。
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
并且在我的 db:seed 中,我也使用 Hash::make("password")
创建了一个带有散列密码的用户。所以 laravel 散列散列密码 :)
在 laravel 版本 5.* 中,您不需要为 Auth 散列输入密码,因为 Auth 会自行管理它。您只需要通过表单传递 {{csrf_field()}}
即可。
除了 @mervasdayi 解决方案之外,在 setPasswordAttribute
中散列密码以避免重新散列问题的一个好方法可能是:
public function setPasswordAttribute($password){
$this->attributes['password'] = Hash::needsRehash($password) ? Hash::make($password) : $password;
}
进一步了解@mervasdayi 和 Gerard Reches 的建议。只是想我会记下你需要包括
use Illuminate\Support\Facades\Hash;
在添加这些修复程序时位于 User
模型的顶部。
我认为是晚些时候,但我找到了两个解决方案来解决这个问题。
首先,如果你使用 laravel 5.3,你可以使用 bcrypt 函数。看下面的函数。这意味着您在数组中获取数据。
public function create(array $data)
{
return User::create([
'password' => bcrypt($data['password']),
]);
}
其次,您可以使用 mutator 来修复它,如下所示:
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
希望对大家有所帮助。最好的问候
我刚开始接触 Laravel 5,我来自 Laravel 4 环境,所以应该不会太难。
听说L5内置了一个很简洁的认证系统。 我已经设置了从数据库到视图的所有内容。
注册过程运行正常,之后它会自动让我登录。但是当我注销并尝试重新登录时,出现此错误:
These credentials do not match our records.
我不确定出了什么问题。我必须手动编写登录控制器吗?它在 L5 中如何工作?
我遇到了同样的问题。我的原因是
我在我的 User
模型中定义了 setPasswordAttribute
,所以每次我输入纯密码,它在发送到数据库之前进行哈希处理。
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
并且在我的 db:seed 中,我也使用 Hash::make("password")
创建了一个带有散列密码的用户。所以 laravel 散列散列密码 :)
在 laravel 版本 5.* 中,您不需要为 Auth 散列输入密码,因为 Auth 会自行管理它。您只需要通过表单传递 {{csrf_field()}}
即可。
除了 @mervasdayi 解决方案之外,在 setPasswordAttribute
中散列密码以避免重新散列问题的一个好方法可能是:
public function setPasswordAttribute($password){
$this->attributes['password'] = Hash::needsRehash($password) ? Hash::make($password) : $password;
}
进一步了解@mervasdayi 和 Gerard Reches 的建议。只是想我会记下你需要包括
use Illuminate\Support\Facades\Hash;
在添加这些修复程序时位于 User
模型的顶部。
我认为是晚些时候,但我找到了两个解决方案来解决这个问题。 首先,如果你使用 laravel 5.3,你可以使用 bcrypt 函数。看下面的函数。这意味着您在数组中获取数据。
public function create(array $data)
{
return User::create([
'password' => bcrypt($data['password']),
]);
}
其次,您可以使用 mutator 来修复它,如下所示:
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
希望对大家有所帮助。最好的问候