我有 2 个 ruby rails 应用程序,每个都有一个用于身份验证的设计 gem,我的目标是使用共享会话实现简单的 SSO(单点注销)。
其中一个public.admin.com
与private.admin.com
我正在使用以下配置:
session_store.rb
Rails.application.config.session_store :cookie_store, key: '_shared_admin_session', domain: '.admin.com', tld_length: 2
配置/secrets.yml
我也在两个应用程序中使用相同的secret_key_base
值
设计.rb
config.stretches = 1
config.pepper = ''
应用程序.rb
config.action_dispatch.cookies_serializer = :hybrid
我可以登录其中一个,一旦我打开另一个域,会话就会打开,并且打开的Completed 401 Unauthorized
会话关闭并从第一个域注销。
我尝试过使用domain: 'admin.com'
, domain: :all
,and ..session_store :redis_store..
,但总是得到相同的结果。
谁能帮我找到问题,或者提出更好的解决方案,我将不胜感激。