我有一個Laravel 4應用程序,我在其中設置了一個用戶。在我的登錄路線中,我使用電子郵件和密碼撥打Auth::attempt
,但它總是返回爲假。我確定密碼正確並且數據庫中的正確哈希值爲Hash::check
返回true。Laravel 4身份驗證不起作用
我認爲這可能是由於使用email
作爲登錄字段而不是username
,但我看不到任何設置。 This question表示您可以將選項添加到config/auth.php
,但它不起作用。 This question表示使用username
作爲數組鍵,但後來我得到SQL錯誤,因爲它試圖在數據庫中的用戶名字段上進行選擇。
我是否需要向用戶模型添加一些內容以指定用戶名字段?這裏是我的登錄路線:
Route::post('login', function() {
// data from login form
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
$auth = Hash::check(Input::get('password'), Hash::make('mypass'));
var_dump($auth); // this is TRUE
// login was good
$auth = Auth::attempt($credentials);
var_dump($auth); // this is FALSE
});
數組鍵應該與用於驗證數據庫中用戶的列對應。這在[docs](http://four.laravel.com/docs/security#authenticating-users)中提到。你是否更改過L4附帶的默認'User'模型? – 2013-04-24 01:00:22