Por exemplo:
- Estamos executando dois sites de comunidade em dois domínios (chame-os
example.com
eexample.net
). - Queremos poder expandir isso para mais domínios posteriormente.
- Queremos permitir vários tipos de login (OpenID, Facebook, Twitter, nome de usuário / senha padrão).
- Queremos que alguém que esteja logado em um site seja automaticamente conectado ao (s) outro (s).
Em outras palavras, é um pouco semelhante à rede StackExchange.
Nesse caso, esse plano funcionaria?
- Configure
example.com
eexample.net
(e quaisquer adições posteriores) como terceiros confiáveis do OpenID, que aceitamid.example.org
apenas o login do OpenID . - Configure
example.com
eexample.net
faça uma solicitação de resposta imediata do OpenID na primeira vez que você as visitar, para que, se você estiver conectado,id.example.org
imediatamente e automaticamente faça login no site que está visitando. Eles devem definir um cookie, se você não estiver conectado, para salvá-lo em todas as solicitações de página. - Configure
id.example.org
como um fornecedor e consumidor de OpenID. Também deve consumir o Facebook e outros provedores de identidade e permitir acesso padrão a nome de usuário / senha. (Vários métodos de login podem ser anexados a uma conta.) - No logout, basta alterar os tokens de autenticação no banco de dados. O usuário ainda terá cookies, mas eles não terão sentido. Assim, o usuário pode ser desconectado de todos os sites simultaneamente. Vários tokens de autenticação podem ser armazenados contra um usuário ao mesmo tempo (e devem ser diferentes para cada site), para que o usuário possa sair em um navegador, mas ainda estar conectado em outro. Sair sempre sai de todos os sites.
O único problema que posso ver com o acima é este:
- Alguém visita
example.com
. Um cookie "não conectado" está definido. - Zie então entra
example.net
. Idem. - Zie faz login e continua navegando
example.net
. - O Zie volta para
example.com
e, por causa do cookie "não conectado", não é verificadoid.example.org
e, portanto, não está conectado. - No entanto, assim que o zie clicar no botão "efetuar login", o zie será conectado.
Eu não acho que isso seja um grande problema.
No geral, acho que é um sistema muito bom. Eu só gostaria de vê-lo revisado. Existem problemas que eu não previ? Seria de buggy ou lento? StackExchange usa um método muito diferente. Presumo que eles tenham uma boa razão para isso?