2011-02-16 5 views
1

Donc, j'essaie de laisser mes clients se connecter avec Twitter, et juste Twitter. Twitter dit "Vous ne devriez plus jamais stocker de mot de passe pour vos utilisateurs", mais comment est-ce que je vais réauthentifier mes utilisateurs avec twitters API?Twitter OAuth Identification

Si je renvoie l'utilisateur à Twitter après la suppression de sa session, Twitter demande de nouveau à l'utilisateur s'il souhaite accéder à mon application.

Est-il possible d'avoir une intégration transparente avec les comptes Twitter sans jamais stocker les données des utilisateurs locaux?

EDIT

Il semble que la question n'est pas très claire. Ce que j'ai expérimenté en utilisant par exemple http://forum.jquery.com/. Ils utilisent OpenID. Je clique sur "Connexion avec google". Je suis redirigé vers google. Google remebers J'ai donné un accès à Zoho une fois et me renvoie instantanément à forums.jquery.com, cette fois avec un access_token pour zoho pour m'authentifier. Je n'ai pas de données persistantes avec Zoho. Pourtant, ils peuvent me connecter.

Ce que Twitter fait avec OAuth est le suivant. Un utilisateur vient sur mon site, ils cliquent sur "Connexion avec Twitter" et sont redirigés vers Twitter. Twitter leur demande à nouveau si elles veulent donner l'accès de l'application à leurs données. Au lieu de la redirection immédiate google fait.

Est-il possible que Twitter redirige immédiatement l'utilisateur vers moi? Y a-t-il un cadre pour moi que je néglige.

Répondre

1

Avez-vous réellement lu l'API?

Lisez la page getting started, vous ne stockez pas les mots de passe que vous stockez les jetons d'accès pour l'utilisateur. Et si vous voulez que les gens se connectent et s'enregistrent, il va falloir stocker des données ;-)

+0

Comment vais-je dire quel utilisateur appartient à quel jeton acces alors? – Tjirp

+0

Comment savoir quel nom d'utilisateur et quel mot de passe appartient à quel compte? –

2

Ce que vous stockez sur Twitter, c'est le TOKEN de l'utilisateur et le SECRET de l'utilisateur. Ces valeurs sont émises par Twitter (ou par un fournisseur oauth) lorsque vous êtes en train d'authentifier oauth.

Vous pouvez obtenir l'idée en utilisant cette bibliothèque en PHP:

https://github.com/abraham/twitteroauth

Ou celui-ci en Ruby:

https://github.com/jnunemaker/twitter

Le processus est assez simple une fois que vous avez essayé avec un réel Exemple. Ce n'est pas difficile du tout.

Il y a aussi quelques belles screencasts ici:

http://railscasts.com/episodes/241-simple-omniauth

http://railscasts.com/episodes/235-omniauth-part-1

http://railscasts.com/episodes/236-omniauth-part-2

+0

J'ai eu cette idée. Je l'ai fait fonctionner même. Mais imaginez ceci: L'utilisateur se connecte à mon site. Je reçois leur jeton d'accès et le sauvegarde dans une session pour appeler l'api Twitter. L'utilisateur revient après deux semaines. la session est perdue. Quand je veux le réauthentifier, je dois le renvoyer à Twitter. Où il doit donner accès pour la 2ème fois. Au lieu de twitter me disant que l'utilisateur "X" a déjà donné un accès et que son jeton d'accès est "Y" sans montrer à l'utilisateur l'écran Autoriser/Refuser. Je pourrais enregistrer le jeton d'acces dans une base de donnees avec un utilisateur, mais c'est ce que je veux eviter – Tjirp

+0

bien que vous ne pouvez pas stocker les jetons ou vous ne pourrez pas associer un utilisateur a un compte dans votre base de donnees! stocker les jetons est beaucoup moins un risque de sécurité que de stocker le mot de passe. – fire

+1

Vous devez enregistrer ces valeurs dans un stockage persistant, sinon vos utilisateurs devront toujours revenir sur Twitter. – Christian

0

Ce tutoriels pourrait utile pour vous.

Twitter API connect using oAuth

+0

comme je l'ai dit plusieurs fois. Ce n'est pas la connexion c'est le problème. Mais le commentaire de Cristians est à peu près la réponse. Si je n'utilise pas de stockage persistant, je ne peux pas réauthentifier automatiquement l'utilisateur. honte twitter ne permet pas la redirection automatique – Tjirp

0

commentaire Cristian est ce que je cherchais.

Vous devez enregistrer ces valeurs dans un stockage persistant, sinon vos utilisateurs auront toujours besoin de revenir sur Twitter.

Dommage que Twitter ne reconnaît pas que les utilisateurs ont déjà permis à mon application et redirige automatiquement