【发布时间】:2016-06-20 22:02:03
【问题描述】:
我有两个 rails 4 应用程序在共享父域 example.com(pdf.example.com 和 studio.example.com)上运行。应用程序部署在 AWS 上,并将会话存储在共享 Memcached 中。
在studio.example.com 的页面上,pdf.example.com 的页面加载到iframe 中,覆盖了整个可见区域。现在,当用户与 iframe 内容交互时,studio.example.com 中创建的会话应该重置,因为在 pdf.example.com` 页面中不应在studio.example.com 中发生超时。
studio.example.com 应用程序使用设备进行身份验证。
这里是用于在studio.example.com的memcached中存储会话的配置
config/initializers/session_store.rb
Rails.application.config.session_store ActionDispatch::Session::CacheStore, :expire_after => 30.minutes
config/environments/production.rb config/environments/development.rb
config.cache_store = :dalli_store
有很多资源(下面列出的很少)解决了这种情况,但它们都使用CookieStore。对于CacheStore,什么样的配置会有所不同?
- http://dev.mikamai.com/post/75476602797/sharing-session-between-your-rails-4x-app-and
- http://excid3.com/blog/sharing-a-devise-user-session-across-subdomains-with-rails-3/
- https://robots.thoughtbot.com/how-to-share-a-session-between-sinatra-and-rails
编辑 确切的场景在前面讨论过here。
【问题讨论】:
标签: ruby-on-rails-4 devise single-sign-on