2015-10-16 5 views
0

У меня есть регистрационная форма, которая работает для регистрации и входа в систему. Я использую $this->middleware('auth'); в контроллерах на защищенных маршрутах, чтобы предлагать пользователям войти в систему. Форма Войти проходит POST запрос AuthController Laravel ж/имя пользователя и пароль:Laravel 5.1 пользователь не работает

<input type="hidden" name="_token" value="XXXXXXXXXX"> 
    <div class="widget-content"> 
     <input type="text" placeholder="Username" name="username"> 
     <input type="password" placeholder="Password" name="password"> 
     <input class="btn btn-blue pull-right" type="submit" /> 
    </div> 
</form> 

Маршруты:

//authentication routes 
Route::get('auth/login', 'Auth\[email protected]'); 
Route::post('auth/login', 'Auth\[email protected]'); 
Route::get('auth/logout', 'Auth\[email protected]'); 

// Registration routes... 
Route::get('auth/register', 'Auth\[email protected]'); 
Route::post('auth/register', 'Auth\[email protected]'); 

Я попытался с помощью функции вне-полки postLogin() системе аутентификации в, судимый проходящее имя пользователя, имя и адрес электронной почты. Я попытался переопределить родительский метод, как это:

public function postLogin(Request $request) 
{ 
    $username = $request->input('username'); 
    $password = $request->input('password'); 

    if (Auth::attempt(['name' => $username, 'password' => $password])) { 
     // Authentication passed... 
     return redirect('dashboard'); 
    } else { 
     return redirect()->intended('auth/login'); 
    } 
} 

EDIT:

(. Это старый, Для тех, кто с этой проблемой) Правильное использование хэш-функции является

$password = Hash::make('yourPasswordString'); 

$result = Hash::check('yourPasswordString', $password); //returns true 
+0

Какая ошибка вы получаете? – Amo

+0

Вы пытаетесь позволить им войти в систему с именем пользователя вместо электронной почты? – andrewtweber

+0

проверить шаги здесь, посмотрите, поможет ли это http://stackoverflow.com/questions/32029689/laravel-5-user-can-not-be-retrieved-after-successful-authentication/32030103#32030103 –

ответ

0

может это будет токен CSFR? Поскольку вы не используете фасад для вызова формы, вам может потребоваться добавить в токен звонок сразу после открытия тега формы.

{!! csrf_field() !!} {!! Форма: скрытый ('токен', $ токен) !!

+0

Я обновил свой оригинальный вопрос, чтобы отразить ошибку в том, как я использовал метод' Hash :: check() '. – SuperNoob

0

Laravel также хэширует ваш пароль, если вы используете встроенные функции входа в систему, поэтому проверьте свою модель, если в случае, если вы хешируете свой пароль.

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