我读过了
但我无法获得以下设置的解决方案:
- Rails 中的 SaaS Webapp 在 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'
或者我可以始终在当前请求域上设置会话域吗?我知道这是可能的,因为某些应用程序提供了该功能。
提前致谢!