当我注册一个用户,使用内置控制器Auth \ RegisterController.php的Laravels时,一切都很好,我立即登录 . 问题是当我注销并尝试通过Auth \ LoginController.php登录时,它显示密码是不正确的 . 代码如下所示:
- RegisterController.php
$user = $this->create([
'name' => $request['name'],
'email' => $request['email'],
'password' => Hash::make($request['password']),
]);
- LoginController.php
if(!Auth::attempt(request(['email', 'password']))) {
return back()->withErrors([
'message' => 'Wrong Emial or Password!'
]);
}
我检查了数据库,一切似乎都没问题 .
这个问题也很奇怪,当我用 php artisan tinker
散列密码(使用 Hash::make('password')
)然后在同一个用户的数据库中替换它时,一切正常......
1 回答
您不应该向create()函数发送散列密码,该函数负责处理 . 您无法登录的原因是您将密码两次散列 .