用户在Laravel上注册后无法登录
问题描述:
我试图在Laravel上从零开始设置身份验证系统,但无法让用户在注册用户后登录。用户在Laravel上注册后无法登录
我RegisterController存储用户:
public function store()
{
$this->validate(request(),[
'name'=>'required',
'email'=>'required',
'password'=>'required'
]);
$user = User::create(request(['name', 'email','password']));
auth()->login($user);
return redirect()->home();
}
现在一切都很正常,但是当我去登录表单我无法登陆这是我SessionsController与登录交易:
public function store()
{
if(!auth()->attempt(request(['email','password'])))
return back();
}
return redirect()->home();
}
我在这里做错了,我无法登录用户?!
答
在这种情况下,我发现当你注册一个用户时,你将他们的密码保存为数据库上的PLAIN TEXT,这是非常错误的。
现在问题发生在attempt()
正在尝试登录用户时,它正在获取电子邮件和密码将密码与数据库中的哈希值进行比较(您的情况下,您将保存为纯文本)。
当您创建用户bcrypt
()像这样的密码:
public function store()
{
$this->validate(request(),[
'name'=>'required',
'email'=>'required',
'password'=>'required'
]);
$user = User::create([
'name' => request('name'),
'email' => request('email'),
'password' => bcrypt(request('password'))
]);
auth()->login($user);
return redirect()->home();
}
+0
它的工作就像一个魅力。谢谢 –
我想是因为你已经登录本'AUTH() - >登录($用户);'尝试注销和然后登录! – Maraboc
我有一个注销链接破坏auth()会话,但是当我再次尝试它登录不工作 –