2010-04-26 8 views

Répondre

16

MISE À JOUR - Juin 2011 - J'utilise le omniauth gem récemment et je pense qu'il est une meilleure solution que d'utiliser les pierres précieuses proposées dans ce répondre. Cela fonctionne bien avec Devise et vous donnera tout ce dont vous avez besoin dans une gemme. J'ai créé un moteur qui combine Devise et Omniauth et ajoute un contrôleur pour gérer les rappels. J'ai quelques changements prévus pour la pierre précieuse et maintenant je ne considère pas un plugin stable, mais vous pouvez être en mesure de réutiliser une partie du code dans la pierre précieuse: https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb


J'ai récemment reçu cette travailler sur Rails 3 (avec quelques problèmes avec OpenID). Je n'ai pas un exemple complet de travail que vous pouvez regarder sur github, mais voici ce que j'utilise ... qui ont tous des exemples dans les fichiers readme.

Facebook-fbgraph. Contrairement à Facebooker, il utilise l'API Facebook la plus récente. Et la source est très facile à comprendre si vous avez envie de regarder les rouages ​​internes. Regardez l'exemple d'authentification dans le readme. Mort simple.

Twitter - twitter_oauth Encore une fois, consultez l'exemple d'authentification readme. C'était assez facile à mettre en place aussi.

qu'OpenID - rails/open_id_authentication utilise bijou rubis Openid, mais cette prise en pension est lui-même pas un petit bijou, vous devrez laisser tomber le code dans votre application ou mettre dans votre répertoire de plug-in. Jetez un oeil à leur exemple dans le readme et inspectez également la source de près pour comprendre ce qui se passe (ses 130 lignes de code seulement). J'ai modifié une bonne partie pour l'utiliser avec mon plugin d'authentification, mais j'ai rencontré quelques problèmes en le faisant fonctionner avec Simple Registration et Attribute Exchange en même temps ... mais vous pourriez être capable de le faire fonctionner hors de la boîte si l'exemple rdoc est adapté à votre application.

Laissez-moi savoir si vous avez des questions sur ces derniers. J'ai rencontré quelques problèmes que j'ai pu résoudre avec les 3 lors de la configuration.

+0

Merci pour la réponse. Utilisez-vous un plugin d'authentification générale (comme authlogic, devise, restful_authentication) ou avez-vous créé votre propre solution d'authentification standard? –

+0

Je viens de créer mon propre plugin auth. Je n'ai pas vraiment besoin de toutes les fonctionnalités que propose et offre authentique. J'ai regardé la source pour les deux et j'ai choisi certaines choses que j'aimais utiliser dans mon propre rôle et dans la solution d'authentification. Bien que je n'aime pas réinventer la roue, je semble toujours en apprendre davantage quand je la code moi-même (tout en m'inspirant d'autres solutions). De plus, si je dois l'étendre, je n'ai pas à fouiller la source d'une autre personne pour la comprendre. Je travaille sur transformer le FB/Twitter/OpenID en un moteur de rails. Je l'afficherai ici si j'y arrive dans les prochains jours. – johnmcaliley

+0

Ce serait excellent, merci :) –

4

J'ai passé une semaine à essayer (en vain) de faire fonctionner open_id_authentication. J'essayais d'utiliser Authlogic et tous les gemmes et plugins associés. Je ne pouvais pas faire fonctionner les choses comme je le voulais. (Authentification ne fonctionnerait avec: l'action (/: route id) activé, mais quand cela a été activé, mes autres contrôleurs ne fonctionnerait pas parce que quelque chose dans le plug-in a été décapage le hachage params - très frustrant).

Cependant, j'ai finalement réussi à faire fonctionner OpenID en utilisant Devise (http://github.com/plataformatec/devise) et devise_openid_authenticatable (http://github.com/nbudin/devise_openid_authenticatable). J'ai été capable de suivre le readme sur les deux pages pour que tout fonctionne exactement comme je le voulais. Simple. Simple. Et Rails 3.0 compatible.

+0

Oui, je ne pouvais pas non plus utiliser open_id_authentication pour fonctionner. Vous cherchez à concevoir maintenant. – iJK

0

La meilleure façon que je l'ai trouvé pour ce faire est d'utiliser RPX NOW service.

Vous pouvez trouver un exemple complet de l'utilisation de Rails3 et de la gemme RPX NOW au github.

Questions connexes