2

我正在开发一个 Ruby on Rails 应用程序,该应用程序在访问不同的子域时行为略有不同。假设 app 有域test.com和 I 两个子域:onetwo

我需要使用redis session,并且我在整个主机上存储cookie“redis_session”(所以每个域都会存储不同的session_id)。但是在redis中,我想根据子域为会话密钥添加前缀,例如

  1. one.test.com使用名为redis_session的 cookie ,其值为123,但在 redis 中存储为one:123
  2. 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,谢谢。

4

1 回答 1

1

你在用redis-store宝石吗?看看这个gem 的pull request - 好像上个月添加了动态命名空间。

于 2013-11-03T06:03:01.390 回答