2010-04-26 26 views

Respuesta

16

ACTUALIZACIÓN - Junio ​​2011 - He estado usando el omniauth gem recientemente y creo que es una solución mejor que usar las gemas se sugieren en este responder. Funciona bien con Devise y le dará todo lo que necesita en una joya. Creé un motor que combina Devise y Omniauth y agrega un controlador para manejar las devoluciones de llamada. Tengo bastantes cambios previstos para la gema y en este momento yo no lo considero un plugin estable, pero es posible que pueda volver a utilizar una parte del código de la gema: https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb


Hace poco recibí este trabajando en Rails 3 (con algunos problemas al usar OpenID). No tengo un ejemplo de trabajo completo que pueda ver en github, pero esto es lo que estoy usando ... todos los cuales tienen ejemplos en los archivos Léame.

Facebook - fbgraph. A diferencia de Facebooker, usa la API de Facebook más reciente. Y la fuente es muy fácil de entender si desea echar un vistazo al funcionamiento interno. Mira el ejemplo de autenticación en el archivo Léame. Muerto simple.

Twitter - twitter_oauth De nuevo, consulte el ejemplo de autenticación del archivo Léame. Esto fue bastante fácil de configurar también.

OpenID - rails/open_id_authentication utiliza joya rubí openid, pero esta repo en sí no es una joya, por lo que tendrá que dejar caer el código en su aplicación o poner en su directorio de plugins. Eche un vistazo a su ejemplo en el archivo Léame y también inspeccione de cerca la fuente para comprender qué está sucediendo (son solo 130 líneas de código). Modifiqué un poco para que funcionara con mi plugin de autenticación, pero tuve algunos problemas para hacerlo funcionar tanto con Simple Registration como con Attribute Exchange al mismo tiempo ... pero es posible que pueda hacer que funcione listo para usar si el ejemplo de rdoc es adecuado para su aplicación.

Deseo saber si tiene alguna pregunta específica sobre esto. Me encontré con algunos problemas que pude resolver con los 3 cuando estaba configurando esto.

+0

Gracias por la respuesta. ¿Está utilizando algún complemento de autenticación general (como authlogic, idee, restful_authentication) con ellos o ha creado su propia solución de "autenticación estándar"? –

+0

Acabo de hacer mi propio plugin auth simple. Realmente no necesito todas las características que idean y ofrecen authlogic. Miré la fuente de ambos y seleccioné algunas cosas que me gustaba usar en mi propio rol y solución de autenticación. Si bien no me gusta reinventar la rueda, siempre me parece que aprendo más cuando lo codifico (mientras me inspiro en otras soluciones). Además, si necesito extenderlo, no tengo que cavar a través de la fuente de otras personas a la semana para resolverlo. Estoy trabajando para convertir las cosas de FB/Twitter/OpenID en un motor de rieles. Lo publicaré aquí si lo hago en los próximos días. – johnmcaliley

+0

Eso sería excelente, gracias :) –

4

Pasé alrededor de una semana intentando (sin éxito) para obtener open_id_authentication de trabajo. Intentaba usar Authlogic y todas las gemas y complementos asociados. No podría hacer que las cosas funcionen como yo quería. (La autenticación solo funcionaría con la ruta: action (/: id) habilitada, pero cuando eso estaba habilitado, mis otros controladores no funcionarían porque algo en el plugin estaba eliminando el hash de parámetros, muy frustrante).

Sin embargo, finalmente pude obtener OpenID trabajando usando Devise (http://github.com/plataformatec/devise) y devise_openid_authenticatable (http://github.com/nbudin/devise_openid_authenticatable). Pude seguir el archivo Léame en ambas páginas para que todo funcionara exactamente como yo quería. Sencillo. Directo. Y Rails 3.0 compatible.

+0

Sí, no pude conseguir que open_id_authentication funcionara. Buscando en el ingenio ahora. – iJK

0

La manera más fácil que he encontrado para hacer esto es utilizar el servicio RPX NOW.

Puede encontrar un ejemplo completo de su uso con Rails3 y la gema RPX NOW en github.

Cuestiones relacionadas