当前位置:  开发笔记 > 程序员 > 正文

如何使用Rails在多个域之间共享用户会话?

如何解决《如何使用Rails在多个域之间共享用户会话?》经验,为你挑选了1个好方法。

是否有人知道任何宝石,教程或解决方案使用户能够在一个域中登录网站并自动在同一会话中访问其他合作伙伴域?

我有两个rails应用程序运行,我们称之为App-A和App-B.App-A有一个与之关联的数据库,为App-A.com的注册和登录提供支持.我现在想让App-A.com帐户的所有用户都可以访问App-B.com,而无需重新注册或手动登录App-B.com.

在此先感谢您的帮助! - 标记



1> Ricardo Acra..:

您可以在两个应用中设置相同的session_key.在appA environment.rb中更改session_key,就像这样

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

在AppB中做同样的事情.(记得用同样的秘密)

现在你有共享会话.假设你使用restfull_authentication,它设置一个名为user_id的会话变量.在appA中进行身份验证时,会在会话中设置user_id.现在,在appB中,您只需验证会话中是否存在user_id.

这是整体架构,您可以使用这个想法详细说明.


据我所知,这只有在两个应用程序都在同一个域上时才有效?
没错,这个解决方案不适用于多个域.
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有