Pergunta

Estou usando o OAuth no meu aplicativo da web e os usuários podem fazer login no Twitter.

Quero adicionar o botão "Switch Twitter Account", que realmente limpa a sessão e abre o Authorize_URL.

À medida que a limpeza da sessão no meu aplicativo da Web não sai do Twitter, o Authorize_URL autenticará automaticamente o usuário atual do Twitter.com. Isso significa que não posso fazer logout, a menos que envie o usuário para o Twitter.com.

É possível com a API? Qual é a melhor maneira de implementar isso?

Foi útil?

Solução

A sessão com o Twitter é definida por um cookie de propriedade do Twitter - algo que você não tem controle. Você não pode registrá -los fora do Twitter em seu nome.

Se você deseja que alguém seja capaz de usar sua funcionalidade "Switch Twitter Account", precisará passá -lo para o aperto de mão OAuth novamente, mas use o /oauth/authorize caminho em vez do /oauth/authenticate caminho. Isso permitirá que o usuário mude suas credenciais de usuário no Twitter durante o handshake, em vez de apenas reuticar o uso de sua sessão existente no Twitter.

Como alternativa, você pode ter uma noção separada de usuários em seu próprio aplicativo, pelo qual você possui seu próprio modelo de usuário que possui muitas contas do Twitter associadas a ele. Dessa forma, você pode permitir que seus usuários alternem as contas de maneira mais parecida. Eles teriam que autorizar seu aplicativo antecipadamente para cada uma das contas do Twitter, mas você teria todas as suas chaves OAuth para cada uma das contas do Twitter depois disso.

Outras dicas

Você pode usar oauth/autenticar e adicionar force_login=true Conforme especificado em Get Oauth/Authenticate. Isso solicitará ao usuário um formulário de login.

Desculpe por comentar como resposta. A solução Abraham funciona muito bem, mas para limpar o campo de nome de usuário, você também precisa adicionar screen_name= para obter solicitação.

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