2016-01-20 3 views
1

Я сделал простую форму для входа. Я протоколирую пользователь:Аутентичная сессия убита после перенаправления | laravel 5.2

Auth::loginUsingId($user->id, true); 

Но когда перенаправить пользователь на ClientController я нахожусь перенаправлять на форму входа, сеанс Auth не persitent.

return redirect()->action('[email protected]'); 

Мои маршруты:

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

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

ответ

1

web промежуточного слоя необходим пнуть в перед auth промежуточного слоя, поскольку web промежуточного слоя отвечает за загрузку до сеанса. Переключите порядок вокруг так:

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

Однако, в то время как мы на эту тему, вы можете гнездятся маршрутные группы в другую группу маршрутов так, чтобы предотвратить ошибку, как это в будущем, я бы просто рекомендовать вложенности все внутри web промежуточное ПО:

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

    Route::group(['prefix' => 'admin'], function() { 
     Route::get('/', '[email protected]'); 
    }); 

    Route::group(['prefix' => 'client', 'middleware' => 'auth'], function() { 
     Route::get('/', '[email protected]'); 
    }); 
}); 
Смежные вопросы