Pergunta

Em um site implementei o login usando OpenID (baseado em StackOverflow).

Mas não consigo sair.
No meu host posso sair, mas quando o usuário tenta fazer login novamente (especialmente com o google), a autenticação é realizada sem exigir que o usuário digite nome e senha.

Como posso indicar ao OpenID Provider que um usuário não está mais logado no site?

Foi útil?

Solução

O OpenID autentica os usuários ao seu site, quando inicia uma sessão no seu site. Você destruir ou invalide a sessão do seu site separadamente Na sessão do usuário com o provedor OpenID.

O usuário visita Joewidgets.com> O usuário faz login com o OpenID (com uma sessão nova ou existente do provedor)> ... O usuário clica em logout> joewidgets.com destrói/invalida a sessão.

Se o usuário tiver seu provedor OpenID, mantenha -os conectados, e seu sistema automaticamente Verifica, então criará uma nova sessão local. (Un) Felizmente, você não se preocupa/não pode se preocupar com o que o usuário faz ou não faz em seus Provedor, que é um profissional/con de OpenID.

Há uma discussão em Batom social o que exige "desligamento único", mas OpenId atualmente não fornece esta função.

Outras dicas

Isso é chamado de logout único ou assinatura única, que o OpenID não suporta. Na minha opinião, o SSO sem logout é um grande buraco de segurança. O registro de um único site não significa muito se outros podem entrar com alguns cliques.

Por enquanto, precisamos lembrar o provedor. Se é alguém que conhecemos, acionamos o processo de logout para eles. Para o Google, o URL é,

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

O fluxo de logout é feio, mas faz o trabalho.

Isso geralmente é algo tratado pelo provedor OpenID - por exemplo, se o usuário permanecer conectado à conta do Google e verificou a caixa para "lembrar" a autorização do OpenID para seu site em particular, o provedor os registrará transparentemente e redirecionará e redirecionará sem exibindo o prompt de login.

"É um recurso, não um bug"

O provedor de identificação pode optar por manter o usuário autorizado para o provedor por meio de cookies e, ainda, pode optar por não solicitar novamente ao usuário o compartilhamento das mesmas informações que foram compartilhadas anteriormente (com um prompt).Portanto, quando o usuário no Site A solicitou autorização através do Site B e foi redirecionado, o Site B primeiro solicitou que o usuário se autenticasse.Então o Site B perguntou se deveria compartilhar alguma informação (e às vezes quais informações) com o Site A.Neste ponto, também será habitual perguntar se você deseja compartilhar automaticamente essas mesmas informações no futuro.Alguns provedores presumirão que sim, outros não, alguns não perguntarão.O Site B então redireciona para o Site A e compartilha as informações, agora você está logado.

Se o Site A fizer um segundo redirecionamento para o Site B para solicitar um login, o Site B poderá 1) Já possui um cookie que autentica o usuário atual do Site B.2) Já tenha um registro de quais informações são aceitáveis ​​para compartilhar com o Site B.3) Compartilhe automaticamente essas informações por meio de um redirecionamento, sem parar para avisar o usuário.

Este é um recurso centrado na conveniência.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top