Php 用户在Laravel上注册后无法登录
我试图从头开始在Laravel上设置身份验证系统,但我无法让用户在注册后登录 用于存储用户的My RegisterController:Php 用户在Laravel上注册后无法登录,php,laravel,Php,Laravel,我试图从头开始在Laravel上设置身份验证系统,但我无法让用户在注册后登录 用于存储用户的My RegisterController: public function store() { $this->validate(request(),[ 'name'=>'required', 'email'=>'required', 'password'=>'required' ]); $user = Us
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();
}
现在一切都很好,但当我进入登录表单时,我无法登录。这是我的SessionController,用于处理登录:
public function store()
{
if(!auth()->attempt(request(['email','password'])))
return back();
}
return redirect()->home();
}
我在这里做错了什么,我不能登录用户 在这种情况下,我发现当您注册一个用户时,您将其密码保存为数据库中的纯文本,这是非常错误的 现在,当
trunt()
尝试登录用户时,会出现问题,它会收到电子邮件,密码会将密码与数据库上的哈希密码进行比较(您的案例u保存为纯文本)
当您创建用户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();
}
我想是因为你已经用这个
auth()->login($user)登录了代码>尝试注销,然后登录!!我确实有一个注销链接,它会破坏auth()会话,但是当我再次尝试登录时,它就不起作用了