Domanda

In un sito ho implementato il login usando OpenID (basata su StackOverflow).

Ma io non riesco a effettuare il logout.
Sul mio ospite posso effettuare il logout, ma quando l'utente tenta di accedere di nuovo (in particolare con google) l'autenticazione passa attraverso senza richiedere all'utente di digitare nome e password.

Come posso indicare al provider OpenID che un utente non è più registrato nel sito?

È stato utile?

Soluzione

OpenID autenticazione degli utenti al tuo sito, quando poi inizia una sessione sul tuo sito. Si distrugge o invalidare la sessione del tuo sito separatamente dalla sessione dell'utente con il loro fornitore OpenID.

L'utente visita joewidgets.com> utente accede con OpenID (con una nuova o esistente sessione di fornitore)> ... utente fa clic di logout> joewidgets.com distrugge / invalida la sessione.

Se l'utente ha il provider OpenID tenerli connessi, e il sistema automaticamente controlli, allora si creerà una nuova sessione locale. (Un) per fortuna, non è / non può preoccuparsi di ciò che l'utente fa o non fa a loro fornitore, che è un pro / con di OpenID.

C'è un argomento a sociale Rossetto che richiede " single Sign-out", ma OpenID non fornisce attualmente questa funzione .

Altri suggerimenti

Questo è chiamato Logout singola o Single Sign-Out, che OpenID non supporta. A mio parere, SSO senza disconnessione è un grosso buco di sicurezza. Logout un singolo sito non significa molto se altri possono solo ottenere con pochi click.

Per il momento, dobbiamo ricordare il provider. Se si tratta di qualcuno che conosciamo, abbiamo innescare il processo di logout per loro. Per Google, l'URL è,

https://www.google.com/accounts/Logout

Il flusso di disconnessione è brutto, ma non il lavoro.

Questo è in genere qualcosa di gestito dal provider OpenID - per esempio, se l'utente rimane connesso al proprio account Google e controllare la casella di "ricordare" l'autorizzazione OpenID per il vostro sito particolare, quindi il provider in modo trasparente li login e riorientare indietro senza visualizzare il prompt di login.

"E 'una caratteristica non un bug"

Il provider id può scegliere di mantenere l'utente autorizzato per il provider attraverso i cookies, e inoltre possono scegliere di non ri richiedono all'utente di condividere le stesse informazioni che è stato condiviso in precedenza (con un prompt). Così, quando l'utente sul sito, ha chiesto di essere autorizzato attraverso il sito B, e ottenuto reindirizzato, sito B prima chiesto all'utente di autenticarsi lui o la sua auto. Poi il sito B ha chiesto se deve condividere tutte le informazioni (e, a volte, che le informazioni) con Site A. A questo punto sarà anche abitualmente chiederà se si desidera condividere automaticamente le stesse informazioni in futuro. Alcuni fornitori assumeranno sì, alcuni no, alcuni non chiedere. Sito B reindirizza poi a sito e condivide le informazioni, si sta ora collegato.

Se del sito fa un secondo reindirizzamento al sito B per richiedere un account di accesso, sito B potrebbe 1) Hai già un cookie che autentica l'utente corrente del sito B. 2) hanno già un record di quali informazioni è accettabile per condividere con sito B. 3) condividere automaticamente queste informazioni tramite un redirect senza fermarsi a richiedere all'utente a tutti.

Questa è una caratteristica incentrato convenienza.

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