当登录用户会话时,:: flush()laravel将无效

时间:2014-07-01 14:21:24

标签: php session laravel-4

我正在使用laravel来构建一个具有身份验证登录的网站,当用户退出时,他们仍然可以单击浏览器的后退按钮并进行吹气..他们又回来了。所以这是我的代码我是使用session :: flush删除会话但它不起作用。

这是我的代码

公共职能退出()     {

    Session::flush();
    Auth::logout(); 
    return Redirect::action('ViewController@signin');
}

2 个答案:

答案 0 :(得分:0)

通常当用户在浏览器上“回”时,他们的浏览器只会向他们显示页面的缓存版本。他们不应该实际与页面交互(即提交表单)或做任何需要向服务器发出新请求的事情,而服务器不响应它们已被注销。

答案 1 :(得分:0)

使用过滤器可以解决此问题。 (我还没有找到任何其他解决方案)首先,在filters.php中添加此代码:

Route::filter('no-cache',function($route, $request, $response){

    $response->header("Cache-Control","no-cache,no-store, must-revalidate");
    $response->header("Pragma", "no-cache"); //HTTP 1.0
    $response->header("Expires"," Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

});

然后将此过滤器附加到路由或控制器。我将它附加到控制器的构造函数中,如下所示:

public function __construct() {
        $this->beforeFilter('csrf',array('on' => 'post'));
        $this->afterFilter("no-cache", ["only"=>"getDashboard"]);
    }