是否有人知道任何瑰宝,教程或解决方案,使用户可以登录一个域中的网站并在同一 session 中自动获得对其他合作伙伴域的访问权限?
我有两个正在运行的Rails应用程序,我们称它们为App-A和App-B。 App-A有一个与之关联的数据库,可以在App-A.com上进行注册和登录。我现在想授予所有具有App-A.com帐户的用户访问App-B.com的权限,而不必让他们重新注册或分别手动登录到App-B.com。
在此先感谢您的帮助!
- 标记
最佳答案
您可以在两个应用程序中设置相同的session_key。在appA environment.rb中,像这样更改session_key
Rails::Initializer.run do |config|
...
config.action_controller.session = {
:session_key => '_portal_session',
:secret => '72bf006c18d459acf51836d2aea01e0afd0388f860fe4b07a9a57dedd25c631749ba9b65083a85af38bd539cc810e81f559e76d6426c5e77b6064f42e14f7415'
}
...
end
在AppB中执行相同的操作。 (请记住使用相同的 secret )
现在,您已经共享了 session 。假设您使用restfull_authentication,它会设置一个名为 user_id 的 session 变量。在appA中进行身份验证时,它将在 session 中设置user_id。现在,在appB中,您只需要验证 session 中是否存在user_id。
这是整体架构,您可以使用此想法进行详细说明。
关于ruby-on-rails - 如何使用Rails在多个域中共享用户 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274384/