ドメインの異なるサイトでセッションを共有する

INDEX PAGE

ドメインの異なるサイトでセッションを共有する


Railsの1.2移行では、セッションはデフォルトではCookieを使用しているので
サーバーが分散していてもセッション共有することができます。

※携帯サイトなどでは方式を検討する必要がありますが。

さてー実際には一つのサイトだけど
サイトの趣旨によってドメインを分割しているということもあると思います。

http://a.xxxx.co.jp/hoge.html
http://b.xxxx.co.jp/hoge.html
http://c.xxxx.co.jp/hoge.html

どれかでログインした情報を全てで利用したいなどです。

TOMCATなどでは、ドメインが異なるとセッションの共有は不能でしたが
Railsでは設定次第では可能なようです。

config/enviroments.rbにて45行目付近に

 config.action_controller.session = {
  :session_key => '_hoge_session',
  :secret  => 'e6531e28b332542b22beede1a848a83b487'
 }

この記述を下のように追記すると

 config.action_controller.session = {
  :session_domain => 'xxxx.co.jp',
  :session_key => '_hoge_session',
  :secret  => 'e6531e28b332542b22beede1a848a83b487'
 }

このドメインの間でセッションを共有利用でき増した。


HTTPSのサイトとの間に関しても

 config.action_controller.session = {
  :session_secure => false,
  :session_domain => 'xxxx.co.jp',
  :session_key => '_hoge_session',
  :secret  => 'e6531e28b332542b22beede1a848a83b487'
}

この用に記述することでセッションを共有できますが
セキュリティー的によろしくないので、別途対応を実装することが推奨されます。

INDEX PAGE