【发布时间】:2011-02-07 00:59:42
【问题描述】:
我读过
- How to give cname forward support to saas software
- Rails - Multiple top level domains and a single session/cookie
但我无法为以下设置找到解决方案:
- Rails 中的 SaaS Web 应用在 example.com 下运行
- 所有用户都有一个 sumbdomain,例如user1.example.com
- 用户可以创建一个 cname 转发,例如。 exampleapp.user1.com -> user1.example.com
在用户尝试通过 exampleapp.user1.com 登录之前,一切正常。 SaaS 应用无法正确设置会话域,因为它在应用启动时配置为静态。
config.action_controller.session = {
:session_key => '_example_session',
:domain => ".example.com",
:secret => 'abc'
}
请求失败并返回 ActionController::InvalidAuthenticityToken。这是正确的,因为域从.example.com 更改为exampleapp.user1.com。
如何在运行时更改域配置?我知道“传入”域exampleapp.user1.com 属于user1,所以我想在控制器中做类似的事情:
session :domain => 'exampleapp.user1.com'
或者我可以总是在当前请求域上设置会话域吗? 我知道这是有可能的,因为某些应用程序提供了该功能。
提前致谢!
【问题讨论】:
标签: ruby-on-rails session dns saas cname