[英]Laravel 5: Login password doesn't match with saved one
當我注冊用戶時,使用內置於控制器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')
)進行Hash::make('password')
,然后將其替換為同一用戶的數據庫時,一切正常。
您不應該將散列密碼發送給create()
函數,該函數可以解決該問題。 您無法登錄的原因是因為您對密碼進行了兩次哈希處理。
$user = $this->create([
'name' => $request['name'],
'email' => $request['email'],
'password' => $request['password'],
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.