重定向后,Auth会话被杀死laravel 5.2

时间:2016-01-20 16:35:20

标签: laravel 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');
});

1 个答案:

答案 0 :(得分:1)

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');
    });
});