I have a Laravel 4 app in which I have set up one user. In my login route I'm calling Auth::attempt
with the email and password but it always comes back as false. I definitely have the password correct and the correct hash in the database as Hash::check
returns true.
I think it may be due to using email
as the login field instead of username
, but I can't see any setting for that. This question implied you could add an option to config/auth.php
but it didn't work. This question says to use username
as the array key, but then I get SQL error because it tries to select on a username field in the database.
Do I need to add something to the User model to specify the username field? Here is my login route:
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
});