Pregunta

¿Alguien sabe de gemas, tutoriales o soluciones que permitan a un usuario iniciar sesión en un sitio web en un dominio y se le otorgue automáticamente acceso a otros dominios asociados en la misma sesión?

Tengo dos aplicaciones de rieles ejecutándose, llamémoslas App-A y App-B. App-A tiene una base de datos asociada, que permite el registro y el inicio de sesión en App-A.com. Ahora me gustaría dar a todos los usuarios con cuentas de App-A.com acceso a App-B.com, sin hacer que se registren o inicien sesión manualmente en App-B.com por separado.

Gracias de antemano por cualquier ayuda! --Marque

¿Fue útil?

Solución

Puede configurar la misma sesión_clave en ambas aplicaciones. En appA environment.rb cambie la session_key, así

Rails::Initializer.run do |config|
   ...  
 config.action_controller.session = {
   :session_key => '_portal_session',
   :secret      => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
  }
  ...
end

Haz lo mismo en AppB. (recuerde usar el mismo secreto)

Ahora ha compartido sesiones. Supongamos que utiliza restfull_authentication, que establece una variable de sesión llamada user_id . Cuando se autentica en appA, establece el user_id en la sesión. Ahora, en appB solo tienes que verificar si user_id existe en la sesión.

Este es el esquema general, puede elaborar más utilizando esta idea.

Otros consejos

Si desea crear una solución de inicio de sesión único para sus aplicaciones, le recomiendo que eche un vistazo a solución RubyCAS . También podría usarse para proporcionar un inicio de sesión único para otras aplicaciones que no sean de Rails, así como para integrar la autenticación con LDAP u otros proveedores de autenticación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top