2016-01-28 2 views
1

Я довольно свежий в laravel. Я использовал CakePHP время или два, но не это.Аутентификация Laravel не устанавливает меня как аутентифицированный

В настоящее время я пытаюсь сделать систему аутентификации. Регистрация действительно работает, так же как и вход в систему.

Когда я вхожу в систему, мое представление отображается. Но когда я пытаюсь обеспечить функции контроллеров с помощью auth промежуточного ПО:

public function __construct() { 
    $this->middleware("auth"); 
} 

он держит перенаправляет меня /, но когда его нет, все это работает?

Кроме того, когда я пытаюсь сделать var_dump(Auth::check()); в функции входа, она показывает true, но когда я делаю это в моем индексе (Где я постоянно получаю неправомерно перенаправлен) он показывает false.

Это, как я войти моих пользователей:

public function postLogin(LoginRequest $request) { 
    if ($this->auth->attempt($request->only("username", "password"))) { 
     return redirect("/me"); 
    } 

    return redirect("/")->withInput()->withErrors([ 
     "username" => "The credentials you entered did not match out system." 
    ]); 
} 

Является ли это из-за ошибки в коде, который вызывает это?

Заранее спасибо.

Редактировать: Я использую Laravel 5.2. А также по запросу: вот маршруты.

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', '[email protected]'); 
    Route::get('/me', '[email protected]'); 
}); 

Route::controller('/','Auth\AuthController'); 
+0

У вас есть промежуточное ПО Session? Какой драйвер сеанса вы используете? – Pitchinnate

+0

@Pitchinnate ''web' => ['driver' => 'session', 'provider' => 'users',],' Вы имеете в виду это? И промежуточное программное обеспечение 'session' входит в группу' web'? –

+0

@WesleyPeeters Какую версию Laravel вы используете? Также, пожалуйста, разместите определение маршрута для этого действия контроллера. – Bogdan

ответ

2

Вы должны переместить Route::controller определение в группу маршрутов, которая имеет web промежуточное программное обеспечение добавлен, в противном случае сеанс не будет включен для него, и система аутентификации необходим сеанс для того, чтобы работать. Так должно быть:

Route::group(['middleware' => ['web']], function() { 
    Route::get('/', '[email protected]'); 
    Route::get('/me', '[email protected]'); 

    Route::controller('/','Auth\AuthController'); 
}); 
Смежные вопросы