gpt4 book ai didi

php - 用户在 Laravel 上注册后无法登录

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:40 25 4
gpt4 key购买 nike

我正在尝试从头开始在 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();
}

我在这里做错了什么,我无法登录用户?!

最佳答案

在这种情况下,我看到当您注册用户时,您将他们的密码作为纯文本保存在数据库中,这是非常错误的。

现在问题发生在 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();
}

关于php - 用户在 Laravel 上注册后无法登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44889392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com