重定向后身份验证会话终止 | laravel 5.2
Auth session killed after redirect | laravel 5.2
我制作了一个简单的登录表单。我用 :
登录我的用户
Auth::loginUsingId($user->id, true);
但是当我将用户重定向到 ClientController 时,我被重定向到登录表单,Auth 会话不是持久的。
return redirect()->action('ClientController@index');
我的路线:
Route::group(['middleware' => 'web'], function() {
Route::get('/', 'HomeController@index');
Route::post('/', 'HomeController@auth');
});
Route::group(['prefix' => 'admin', 'middleware' => 'web'], function() {
Route::get('/', 'AdminController@index');
});
Route::group(['prefix' => 'client', 'middleware' => ['auth', 'web']], function() {
Route::get('/', 'ClientController@index');
});
web
中间件需要在 auth
中间件之前启动,因为 web
中间件负责启动您的会话。像这样调换顺序:
Route::group(['prefix' => 'client', 'middleware' => ['web', 'auth']], function() {
Route::get('/', 'ClientController@index');
});
但是,当我们讨论这个主题时,您可以将路由组嵌套在另一个路由组中,以防止将来出现此类错误,我建议将所有内容嵌套在 web
中间件中,例如这个:
Route::group(['middleware' => 'web'], function() {
Route::get('/', 'HomeController@index');
Route::post('/', 'HomeController@auth');
Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'AdminController@index');
});
Route::group(['prefix' => 'client', 'middleware' => 'auth'], function() {
Route::get('/', 'ClientController@index');
});
});
我制作了一个简单的登录表单。我用 :
登录我的用户Auth::loginUsingId($user->id, true);
但是当我将用户重定向到 ClientController 时,我被重定向到登录表单,Auth 会话不是持久的。
return redirect()->action('ClientController@index');
我的路线:
Route::group(['middleware' => 'web'], function() {
Route::get('/', 'HomeController@index');
Route::post('/', 'HomeController@auth');
});
Route::group(['prefix' => 'admin', 'middleware' => 'web'], function() {
Route::get('/', 'AdminController@index');
});
Route::group(['prefix' => 'client', 'middleware' => ['auth', 'web']], function() {
Route::get('/', 'ClientController@index');
});
web
中间件需要在 auth
中间件之前启动,因为 web
中间件负责启动您的会话。像这样调换顺序:
Route::group(['prefix' => 'client', 'middleware' => ['web', 'auth']], function() {
Route::get('/', 'ClientController@index');
});
但是,当我们讨论这个主题时,您可以将路由组嵌套在另一个路由组中,以防止将来出现此类错误,我建议将所有内容嵌套在 web
中间件中,例如这个:
Route::group(['middleware' => 'web'], function() {
Route::get('/', 'HomeController@index');
Route::post('/', 'HomeController@auth');
Route::group(['prefix' => 'admin'], function() {
Route::get('/', 'AdminController@index');
});
Route::group(['prefix' => 'client', 'middleware' => 'auth'], function() {
Route::get('/', 'ClientController@index');
});
});