2013-02-11 145 views
1

無法設法登錄任何人的想法?我仍然得到重定向到登錄頁面用戶登錄laravel 4

Route::post('login', function() { 
    // get POST data 
    $email = Input::get('username'); 
    $password = Input::get('password'); 
    if (Auth::attempt(array('email' => $email,'password' => $password))) 
    { 

     return Redirect::to('home'); 
    } 
    else 
    { 
     // auth failure! lets go back to the login 
     return Redirect::to('login') 
      ->with('login_errors', true); 

    } 

}); 
+0

你有沒有改變的用戶模型?同時告訴我們你的桌子上有什麼。請注意,在查詢之前,您的表中的密碼是否由於Auth散列密碼而散列。 – fl3x7 2013-03-07 18:17:01

+0

@ fl3x7我也處於類似的情況。你能否詳細說明你的附註。這可能是解決問題的方法。謝謝 – 2014-03-09 22:21:41

+0

@JeyKeu有關哈希的更多詳細信息,請參見:http://laravel.com/docs/security#storing-passwords – fl3x7 2014-03-11 12:57:02

回答

1

變化

if (Auth::attempt(array('email' => $email,'password' => $password))) 

if (Auth::attempt(array('username' => $email,'password' => $password))) 
+0

根據[documentation](http://laravel.com/docs/security#authenticating-用戶) – 2014-03-09 22:12:49

+0

這取決於。您應該在數據庫中使用與「用戶名」相對應的任何列名稱。 – Laurence 2014-03-10 06:43:57

0

Laravel有一個設置,讓你指定的用戶名的是「用戶名」或「電子郵件'(或其他您可能選擇的),請檢查配置。如上所示...

if (Auth::attempt(array('username' => $email,'password' => $password))) 

此外,Laravel預計默認情況下哈希密碼。

0

要使用電子郵件用戶名,嘗試添加這對用戶模式:

protected $primaryKey = 'email'; 

另外,還要確保電子郵件是你的「用戶」表的主鍵。