我刚开始在拉拉维尔5,我来自拉拉维尔4环境,所以这应该不会太难。
我听说L5附带了一个内置的认证系统,这是很好的。我已经设置了从数据库到视图的所有内容。
注册过程是正确的,然后它会自动登录我。但是,当我注销并尝试重新登录时,我会得到以下错误:
这些凭据与我们的记录不匹配。
我不知道怎么回事。我是否必须手动编写登录控制器,或者它在L5中是如何工作的?
发布于 2015-05-26 20:07:59
我也有过同样的问题。我的原因是我在我的setPasswordAttribute
模型中定义了User
,所以每次输入普通密码时,它都会在发送到DB之前进行散列。
public function setPasswordAttribute($password)
{
$this->attributes['password'] = \Hash::make($password);
}
在我的db:seed中,我也用Hash::make("password")
创建了一个具有散列密码的用户。因此,laravel散列散列密码:)
在LaravelVersion5.*中,您不需要为Auth哈希输入密码,因为Auth自己管理它。您只需通过表单传递{{csrf_field()}}
即可。
发布于 2016-05-14 02:08:43
除了@mervasdayi解决方案之外,在setPasswordAttribute
中散列密码避免重新散列问题的一个好方法可能是:
public function setPasswordAttribute($password){
$this->attributes['password'] = Hash::needsRehash($password) ? Hash::make($password) : $password;
}
发布于 2017-04-03 01:03:57
还有@mervasdayi & Gerard Reches的建议。我只是想做个笔记,你需要包括
use Illuminate\Support\Facades\Hash;
添加这些补丁时,在User
模型的顶部。
https://stackoverflow.com/questions/29452497
复制相似问题