2015-05-26 13 views
7

Così ho impostato la durata delle mie sessioni su due settimane in modo che gli utenti non debbano accedere o uscire più volte. Comunque oggi ho notato qualcosa, se esci, distrugge la tua sessione ma mantiene il cookie di ricordami sul tuo browser. Questo causa problemi perché se si cambiano abbastanza account sullo stesso computer 8-10 volte si ottiene un errore di 400 richieste errate perché si inviano troppe informazioni. ora 8-10 volte in un normale ciclo di vita di un cookie è piuttosto inverosimile, ma quando la tua vita è di due settimane ho incontrato problemi.Laravel Auth :: logout not remove ricordami cookie

Questo è uno screenshot di ciò che accade quando si effettua il login e l'uscita poche volte indietro. enter image description here Come posso cancellare il cookie di durata quando un utente si disconnette? Finora ho provato

Auth::logout(); 
    Session::flush(); 

risposta

2

Sembra che il cookie non venga disattivato automaticamente. Tuttavia è possibile farlo nel controller appena prima di restituire la risposta di reindirizzamento dopo il logout.

public function getLogout() { 
    // your code here 
    ..... 
    // Get remember_me cookie name 
    $rememberMeCookie = Auth::getRecallerName(); 
    // Tell Laravel to forget this cookie 
    $cookie = Cookie::forget($rememberMeCookie); 

    return Redirect::to('/')->withCookie($cookie); 
} 

Ricordarsi di riattivare il cookie con il reindirizzamento, altrimenti non funzionerà.

+0

Questo sembra ciò che sta accadendo tuttavia anche con la copia del codice direttamente non funziona. L'utente è disconnesso e restituisco il valore nel reindirizzamento ma ho ancora lo stesso problema con più cookie accumulati fino a quando non si blocca – CMOS