2014-07-01 71 views
0

我使用laravel來構建一個網站,該網站具有身份驗證登錄功能,當用戶註銷時,他們仍然可以單擊瀏覽器的後退按鈕並吸氣。 。他們回來了。所以這裏是我的代碼我使用會話:: flush刪除會話,但它不會工作。當註冊用戶會話:: flush()laravels不會工作

這是我的代碼

公共職能signout() {

Session::flush(); 
    Auth::logout(); 
    return Redirect::action('[email protected]'); 
} 

回答

0

通常,當一個用戶點擊瀏覽器上的「後退」,他們的瀏覽器只顯示他們網頁的緩存版本。他們不應該實際上能夠與頁面交互(即提交表單),或者做任何需要向服務器提出新請求而不需要服務器響應他們已註銷的內容。

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"]); 
    }