我正在开发一个 Ruby on Rails 应用程序,该应用程序在访问不同的子域时行为略有不同。假设 app 有域test.com和 I 两个子域:one和two。
我需要使用redis session,并且我在整个主机上存储cookie“redis_session”(所以每个域都会存储不同的session_id)。但是在redis中,我想根据子域为会话密钥添加前缀,例如
- one.test.com使用名为redis_session的 cookie ,其值为123,但在 redis 中存储为one:123
- two.test.com使用了名为redis_session的 cookie ,其值为321,但在 redis 中存储为two:321
我发现我可以在 config 中为 redis 会话指定命名空间:
config.session_store :redis_store, :key => 'redis_session',
:redis_server => { :namespace => "..." }
但我只能分配“静态”命名空间,我不知道如何根据当前请求动态设置命名空间以检查域。
我已经用谷歌搜索了解决方案,但到目前为止没有结果,也没有找到任何表现类似的有用 gem。
任何帮助appriciated,谢谢。