我刚刚开始使用Laravel 5,我来自Laravel 4环境所以它不应该太难 .
我听说L5配备了内置的认证系统 . 我已将所有内容从数据库设置为视图 .
注册过程正常,之后它会自动登录 . 但是当我退出并尝试重新登录时,我收到此错误:
这些凭据与我们的记录不符 .
我不确定是什么问题 . 我是否必须手动编写登录控制器或在L5中如何工作?
我遇到过同样的问题 . 我的原因是我在我的 User 模型中定义了 setPasswordAttribute 所以每次输入普通密码,它都会在发送到数据库之前散列 .
User
setPasswordAttribute
public function setPasswordAttribute($password) { $this->attributes['password'] = \Hash::make($password); }
在我的db:seed中,我也用 Hash::make("password") 创建了一个带有哈希密码的用户 . 所以laravel哈希哈希密码:)
Hash::make("password")
在laravel版本5. *中,您不需要为Auth散列输入密码,因为Auth会自行管理它 . 你只需通过表单传递 {{csrf_field()}} .
{{csrf_field()}}
除了 @mervasdayi 解决方案之外,在_660928中散列密码以避免重新出现问题的好方法可能是:
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来修复它:
希望它可以帮助别人 . 最好的祝福
4 回答
我遇到过同样的问题 . 我的原因是我在我的
User
模型中定义了setPasswordAttribute
所以每次输入普通密码,它都会在发送到数据库之前散列 .在我的db:seed中,我也用
Hash::make("password")
创建了一个带有哈希密码的用户 . 所以laravel哈希哈希密码:)在laravel版本5. *中,您不需要为Auth散列输入密码,因为Auth会自行管理它 . 你只需通过表单传递
{{csrf_field()}}
.除了 @mervasdayi 解决方案之外,在_660928中散列密码以避免重新出现问题的好方法可能是:
继@mervasdayi和Gerard Reches建议的那样 . 只是想我会记下你需要包括的内容
添加这些修补程序时,在
User
模型的顶部 .我认为它是后来但我找到了两个解决方案来解决这个问题 . 首先,如果使用laravel 5.3,则可以使用bcrypt函数 . 看下面的功能 . 这意味着您将数据放入数组中 .
其次你可以使用mutator来修复它:
希望它可以帮助别人 . 最好的祝福