2014-11-14 14 views
5

in sede di attuazione di autenticazione in laravel utilizzando sentinella e logout, quindi se premo 'tornare indietro di una pagina' pulsante di qualsiasi browser risale al cruscotto. Se la pagina viene aggiornata, passa alla pagina di accesso come desiderato. Ma voglio impedire l'accesso alla dashboard senza aggiornamento.Come rimuovere cache di una pagina specifica

  1. Come rimuovere immediatamente la cache di questa pagina specifica dopo il logout?
  2. Come scoprire la cache specifica di un browser di una pagina e l'approccio di Laravel nel farlo?

N.B. Dopo aver effettuato il logout e aver visitato la dashboard in questo modo, non è possibile modificare nulla in base alle esigenze.

risposta

1

Distruggi la sessione quando si chiama la funzione di disconnessione. Basta scrivere la funzione di logout nel controller come questo:

public function getLogout() { 
     Sentry::logout(); 
     Session::flush(); // Insert this line, it will remove all the session data 
     return Redirect::to('users/login')->with('message', 'Your are now logged out!'); 
    } 

Edit:

Per prima cosa ho utilizzato solo Sessione: flush(), e in qualche modo ha funzionato! Ma quando ho controllato di nuovo, ho scoperto che non funziona. Quindi, dobbiamo aggiungere altro codice per cancellare la cache del browser quando esci.

L'utilizzo del filtro può essere una soluzione per questo problema. (Non ho ancora trovato alcuna altra soluzione) In primo luogo, aggiungere questo codice in 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 

}); 

quindi collegare questo filtro per le rotte o controller. L'ho collegato in funzione costrutto di controller come questo:

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