簡體   English   中英

Laravel 5:登錄密碼與保存的密碼不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM