Domanda

  

Eventuali duplicati:
   HTTP Logout autenticazione tramite PHP

Hi

Ho un alcune funzionalità sul mio sito protetto utilizzando .htaccess e .htpasswd. Quando gli utenti tentano di accedere a questo, ottengono pronta per entrare in dettagli. Entrano i propri dati e di entrare e possono vedere cose ecc Tutto funziona bene.

La mia domanda è come faccio a creare una funzionalità di logout per questo tipo di autenticazione. So che si può chiudere la finestra del browser per "Logout". Ma questo non è l'ideale. Cosa suggeriresti a me?

Grazie.

È stato utile?

Soluzione

I browser di solito non supportano questa, vedere Come faccio ad accedere fuori?

  

Dal momento che i browser iniziato   attuazione autenticazione di base,   amministratori del sito hanno voluto   sapere come lasciare che l'utente accede fuori.   Dal momento che il browser memorizza nella cache il nome utente   e la password con l'autenticazione   regno, come descritto in precedenza in questo   esercitazione, questa non è una funzione di   la configurazione del server, ma è un   domanda di ottenere il browser per   dimenticare le informazioni sulle credenziali, in modo   che la prossima volta che la risorsa è   richiesto, il nome utente e la password   devono essere forniti nuovamente. Ci sono   numerose situazioni in cui questo è   desiderabile, ad esempio quando si usa un   del browser in un luogo pubblico, e non   che desiderano lasciare il browser connesso   in, in modo che la prossima persona può ottenere   nel tuo conto bancario.

     

Tuttavia, anche se questo è forse il   più frequenti domande su   l'autenticazione di base, finora nessuno di   i maggiori produttori di browser hanno   visto come una caratteristica desiderabile   a mettere nei loro prodotti.

     

Di conseguenza, la risposta a questa   domanda è, non si può. Siamo spiacenti.

Ci sono estensioni del browser che consentono di superare l'autenticazione HTTP per un sito. Per Firefox WebDeveloper estensione (che è una delle mie estensioni favourtie comunque) offre questa caratteristica. Il menu di questo è Miscellaneous/Clear Private Data/HTTP Authentication.

Altri suggerimenti

Testato su Firefox e Chrome . Che cosa si può fare è inviare all'utente di http: // Esci: logout@example.com . Questo sostituirà la loro attuale nome utente / password con il logout / logout (che potrebbe essere una qualsiasi combinazione utente / passaggio valido) e dato che ora hanno il torto nome utente / password, che dovrà nuovamente il login per accedere al sito.

In questa opera non funziona, perché si può avere diversi nomi utente / password, allo stesso tempo. Non ha funzionato su IE o, perché IE non sembra supportare http: // nomeutente: password@example.com URL.

Mi sono imbattuto in questo problema diversi anni fa. E 'incredibilmente frustrante scoprire che c'è un problema ognuno sta avendo e nessuno sembra voler risolvere in modo generale.

Come indicato nella funzionalità Logout inadeguata in Autenticazione HTTP Penso che la risposta è quella di cambiare il RFC per consentire timeout e sostenere un pulsante logout. ulteriore suggerimento dell'autore che il server sia in grado di inviare un "log out" intestazione sarebbe in realtà eliminare la necessità di qualsiasi Supporto user agent del client in quanto i siti web potrebbero semplicemente includere un link in una pagina web a un URL che restituisce il codice di risposta necessaria e / o intestazione per invalidare la sessione corrente.

E 'sorta di possibile eseguire il logout. Si dovrebbe implementare pagina di logout, che restituirà HTTP 401, fino a quando l'utente immettere le informazioni di accesso BAD, e quindi reindirizzare da qualche altra parte. Browser ricorda le più recenti informazioni di login accettato, e sostituisce quindi corretto login.

Ma questo è un pò inutilizzabile, cos ha bisogno di collaborazione dell'utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top