[英]User can not login after registering on 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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.