如何将用户登录到子域并使会话在另一个子域上可用?

时间:2012-03-02 14:06:00

标签: ruby-on-rails ruby session cookies session-cookies

是否可以在login.app.com上设置会话cookie,并在foo.app.com上提供会话cookie?

我想拥有一个中央登录位置:login.app.com。一旦用户Cayote登录login.app.com,我想将他传送到他自己子域名的页面:acme.app.com。一旦他到达那里,他应该登录。

我不确定如何弥合login.app.com和acme.app.com之间的差距。

我正在使用Rails 3.2。

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。您只需要为所有子域声明您的cookie:

# config/initializers/session_store.rb
Testapp::Application.config.session_store :cookie_store, key: '_testapp_session', :domain => :all

通过声明domain => :所有,login.app.com和acme.app.com的cookie将使用域.app.com进行设置,以便在子域之间共享会话。