为什么我不能在laravel中破坏会话时在登录页面中获取会话?

时间:2017-10-27 11:08:16

标签: laravel

我是laravel的新手。我在登录成功后设置了会话(登录链接:http://www.example.com/login)。现在我在个人资料页面。 - > http://www.example.com/customer/account/profile。 当我在配置文件页面中打印会话时,我获得了用户(客户)的会话值。但是当我直接将URL更改为登录页面(http://www.example.com/login)而没有会话销毁并在登录页面中打印会话值时,它会在登录页面上显示空数组。

在routes / web.php文件中:

Route::get('/login','LoginController@index');
Route::post('/login/chklogin','LoginController@chkLogin');
Route::group(['prefix' => 'customer', 'middleware' => 'customer' ], function()
 {
    Route::get('customer/dashboard','customer\DashboardController@index');
    Route::get('customer/account/profile','customer\account\ProfileController@index');
    Route::post('/account/profile/update','customer\account\ProfileController@update');

 });

在客户中间件中:

public function handle($request, Closure $next)
{
    if(!session()->get('customerLoggedIn')) {
        return redirect('/login');
    }
    else
    {
        return $next($request);
    }

}

我想在中间件或任何控制器的构造函数中添加类似的内容。

public function handle($request, Closure $next)
{
    // if session not set for customer then redirect to login page

    // if session set for customer then redirect to profile page
}

我想设置功能,虽然我将url更改为登录页面(http://www.example.com/login),但如果我的会话未被销毁,那么它应该重定向到个人资料页面(http://www.example.com/customer/account/profile)。但它不起作用。我们将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

可能LoginController的{​​{1}}方法正在破坏会话。为我防止数据损坏是有道理的。

无论如何,你不需要那种由index中间件处理的中间件

auth