Question

J'utilise OAuth dans mon application web, et les utilisateurs peuvent se connecter avec Twitter.

Je veux ajouter le bouton « commutateur de compte twitter », qui efface effectivement la session et ouvre alors la authorize_url.

En ouvrant la session de mon application Web ne se connecte pas sur Twitter, le authorize_url authentifiera automatiquement l'utilisateur en cours de twitter.com. Cela signifie que je ne peux pas vous déconnecter, à moins que j'envoie l'utilisateur à twitter.com.

Est-il possible avec l'API? Quelle est la meilleure façon de mettre en œuvre ce?

Était-ce utile?

La solution

La session avec Twitter est définie par un cookie appartenant à Twitter - quelque chose que vous n'avez pas le contrôle. Vous ne pouvez pas les déconnecter de Twitter en leur nom.

Si vous voulez que quelqu'un soit capable d'utiliser la fonctionnalité de votre « switch compte twitter », vous aurez besoin de les passer à la poignée de main OAuth à nouveau, mais utilisez le chemin de /oauth/authorize au lieu du chemin de /oauth/authenticate. Cela permettra à l'utilisateur de passer leurs informations d'identification utilisateur sur Twitter pendant la poignée de main au lieu de simplement une nouvelle authentification à l'aide de leur session Twitter existant.

Vous pourriez avoir une notion distincte d'utilisateurs dans votre propre application dans laquelle vous avez votre propre modèle de l'utilisateur qui a de nombreux comptes twitter qui y sont associés. De cette façon, vous pouvez permettre aux utilisateurs de changer de compte plus seemlessly. Ils devraient autoriser votre application à l'avant pour chacun de leurs comptes Twitter, mais vous auriez toutes les clés de OAuth pour chacun de leurs comptes twitter après.

Autres conseils

Vous pouvez utiliser OAuth / authentifier et ajouter force_login=true comme indiqué dans GET oauth / authentifiez . Cela demandera à l'utilisateur avec un formulaire de connexion.

Désolé pour commenter comme réponse. solution abraham fonctionne très bien, mais pour le champ username de compensation, vous devez également ajouter screen_name= GET demande.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top