Question

Quelqu'un a-t-il connaissance de joyaux, tutoriels ou solutions permettant à un utilisateur de se connecter à un site Web appartenant à un domaine et d'accéder automatiquement à d'autres domaines partenaires au cours de la même session?

J'ai deux applications rails en cours d'exécution, appelons-les App-A et App-B. Une base de données est associée à App-A, alimentant l'enregistrement et la connexion sur App-A.com. J'aimerais maintenant donner à tous les utilisateurs des comptes App-A.com accès à App-B.com, sans les obliger à se réinscrire ou à se connecter manuellement à App-B.com séparément.

Merci d'avance pour toute aide! --Marque

Était-ce utile?

La solution

Vous pouvez définir la même session_key dans les deux applications. Dans appA environment.rb, changez la clé de session, comme ceci

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

Faites la même chose dans AppB. (n'oubliez pas d'utiliser le même secret)

Vous avez maintenant des sessions partagées. Supposons que vous utilisiez restfull_authentication, qui définit une variable de session appelée id_utilisateur . Lorsque vous vous authentifiez dans appA, il définit l'identifiant de l'utilisateur dans la session. Maintenant, dans appB, il vous suffit de vérifier si id_utilisateur existe dans la session.

Ceci est le schéma général, vous pouvez élaborer davantage en utilisant cette idée.

Autres conseils

Si vous souhaitez créer une solution de connexion unique pour vos applications, je vous recommande de consulter RubyCAS . Il pourrait également être utilisé pour fournir une connexion unique à d'autres applications non Rails, ainsi que pour intégrer l'authentification avec LDAP ou d'autres fournisseurs d'authentification.

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