Chrome non elimina i cookie di sessione

Sto cercando di impostare cookie di sessione in javascript in questo modo:

document.cookie = 'name=alex; path=/' 

Ma Chrome non lo elimina anche se esco dal browser e lo lancio di nuovo.

Ho controllato Firefox e Opera ed entrambi funzionano come previsto: eliminano i cookie di sessione all’uscita del browser.

Chrome ignora solo le regole di scadenza?

Ho controllato in più sistemi operativi e ho scoperto che il cookie di sessione viene rimosso su Chrome in Windows XP e Ubuntu, ma NON in Mac OSX Lion.

Ciò può essere causato dall’avere Chrome impostato su Continua in cui era stato interrotto .

inserisci la descrizione dell'immagine qui

Ulteriori letture

  • Segnalazione bug: Chrome non elimina i cookie temporanei, ovvero non mi disconnette automaticamente quando chiudo tutte le windows del browser
  • Problema 128513 in Chromium: i cookie di sessione non vengono cancellati quando i processi di Chrome vengono chiusi

Ho appena avuto lo stesso problema con un cookie che era impostato per scadere in “Fine sessione di navigazione”.

Purtroppo non è così che ho giocato un po ‘con le impostazioni del browser.

Si è scoperto che la funzione che ricorda le tabs aperte quando il browser è chiuso era la radice del problema. (La funzione è denominata “All’avvio” – “Continua da dove ho lasciato”. Almeno sulla versione corrente di Chrome).

Questo succede anche con Opera e Firefox.

Ho appena avuto questo problema. Ho notato che anche dopo aver chiuso il mio browser avevo molti processi in esecuzione. Risulta che le tesi erano tutte della mia estensione cromata.

Nelle impostazioni avanzate ho deselezionato 'Continue running background apps when Google Chrome is closed' ei miei cookie di sessione hanno iniziato a funzionare come dovrebbero.

Ancora un dolore la parte posteriore per tutti noi sviluppatori che hanno programmato il codice aspettandosi che i cookie di sessione vengano cancellati quando l’utente ha finito di navigare

Questo forse perché Chrome è ancora in esecuzione in background dopo aver chiuso il browser. Prova a disabilitare questa funzione facendo quanto segue:

  1. Apri chrome: // settings /
  2. Fai clic su “Mostra impostazioni avanzate …”
  3. Vai alla sezione Sistema e distriggers “Continua a eseguire app in background quando Google Chrome è chiuso”. In questo modo Chrome si chiuderà completamente e quindi eliminerà i cookie di sessione.

Tuttavia, penso che Chrome dovrebbe controllare ed eliminare i cookie di sessione precedenti all’avvio anziché chiuderlo.

Ho dovuto entrambi, deselezionato, nelle impostazioni avanzate di Chrome:

  • “Continua a eseguire app in background quando Google Chrome è chiuso”
  • “Continua da dove mi sono interrotto”, “All’avvio”

Un’alternativa semplice è utilizzare il nuovo object sessionStorage . In base ai commenti, se è stato selezionato “continua da dove sono stato distriggersto”, sessionStorage verrà mantenuto tra i riavvii.

Ho avuto lo stesso problema con “document.cookie” in Windows 8.1, l’unico modo in cui Chrome elimina il cookie era quello di chiuderlo dal task manager (non è un modo molto elegante), così ho deciso di gestire i cookie dal back-end o usare qualcosa come “js-cookie”.

Hai provato a rimuovere l’estensione di Hangouts in Google Chrome? perché obbliga il cromo a continuare a funzionare anche se chiudi tutte le windows.

Anch’io stavo affrontando il problema, ma ora è stato risolto.

In realtà ho provato tutte le soluzioni di cui sopra, sfortunatamente, non hanno risolto il mio problema.

La soluzione è:

Dovresti chiudere tutte le windows del browser e non la scheda attuale in cui ti trovavi,

La soluzione sarebbe utilizzare sessionStorage , FYI: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

Se si imposta il dominio per il cookie di sessione php, i browser sembrano tenerlo premuto per 30 secondi circa. Non sembra importare se si chiude la scheda o la finestra del browser.

Pertanto, se gestisci sessioni utilizzando qualcosa di simile al seguente, il cookie potrebbe bloccarsi nel browser più a lungo del previsto.

 ini_set("session.cookie_domain", 'www.domain.com'); 

L’unico modo che ho trovato per sbarazzarsi del cookie sospeso è rimuovere la riga di codice che imposta il dominio del cookie di sessione. Fai attenzione anche alla funzione session_set_cookie_params (). Anche il punto che precede il dominio sembra non avere alcun rapporto con il problema.

Questo potrebbe essere un bug php quando php invia un cookie di sessione (cioè PHPSESSID=b855ed53d007a42a1d0d798d958e42c9 ) nell’intestazione dopo che la sessione è stata distrutta. O potrebbe essere un problema di propagazione del server, ma non lo penso poiché i miei test erano su server privati.

Google Chrome presenta un problema se imposti e disattivi i cookie in modo improprio. Questo è il codice php. Pensato questo ti darà un’idea.

Imposta cookie

 setcookie('userLoggedIn', 1, 0, PATH); 

Modo sbagliato e non funzionerà (nota PATH mancante)

 setcookie('userLoggedIn', 0, time()-3600); 

Il modo corretto corregge il problema su google chrome

 setcookie('userLoggedIn', 0, time()-3600, PATH);