2015-10-28 7 views
0

Я использовал аутентификацию laravel 5.1 для входа. но Auth::attempt($credentials) возвращает false всегда!laravel 5.1 логин не работает

Я использовал следующий маршрут для создания пользователя:

Route::get('newuser', function() { 
    return User::create([ 
    'username' => 'admin', 
    'email' => '[email protected]', 
    'password' => Hash::make('123'), 
    ]); 
}); 

Я добавил простую функцию postLogin переопределить эту функцию в AuthController:

public function postLogin(Request $request) { 
    $credentials = $this->getCredentials($request); 
    if(Auth::attempt($credentials)) { 
     return 'ok'; 
    } 
    return 'nok'; 
} 

getCredentials является Laravel функции с этим содержимым:

protected function getCredentials(Request $request) 
{ 
    return $request->only($this->loginUsername(), 'password'); 
} 
+0

Вы можете отредактировать вопрос и опубликовать код $ credential, который вы используете? –

+0

Конечно, вопрос обновлен! –

+1

Это опечатка 'Хэш: make ('123')' Я думаю, что это должно быть 'Hash :: make ('123')' –

ответ

0

Это может быть несколько причин. Я бы предложил вам проверить длину столбца пароля в phpMyAdmin в вашей таблице пользователей.

Измените столбец пароля на максимальную длину в базе данных в таблице, где вы храните пароль.

Другой, я предлагаю вам попробовать следующий код, если он работает.

public function postLogin() 
    { 
    // Login credentials 
    $credentials = array(
     'username' => '[email protected]', 
     'password' => '123', 
    ); 
    // Authenticate the user 
    if (Auth::attempt($credentials)) 
{ 
    return 'ok'; 
} 
else{ 
    return "failed"; 
} 

Надеюсь, это поможет.

  1. Не забудьте изменить длину столбца пароля в базе данных, изменить его на максимум.

  2. Изменить пароль типа данных для LONGTEXT длиной до Maximun или 1000.

Последнего и важно, чтобы удалить все записи из таблицы и перезапустить процесс, потому что priviously сохранённого прошел была сохранена другая длина и тот факт, что пароль hashed hashed не совпадает со старым.

Так усечь этот стол и попробовать его снова.

+0

Я изменил длину столбца пароля в базе данных до 255 символов и проверил ваш код, но результат тот же! –

+0

Измените тип данных на LONGTEXT и установите значение lengh на 1000, просто попробуйте один раз. Просмотрите отредактированные ответчики, которые могут вам помочь. –

+0

это не пароль, потому что 'Hash :: check ($ credentials ['password'], $ hashPass)' code возвращает true, где $ hashPass заполняется паролем базы данных. –

Смежные вопросы