Come il logout quando si utilizza .htaccess (e .htpasswd) l'autenticazione? [duplicare]
-
18-09-2019 - |
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.
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.