1. ホーム
  2. ruby-on-rails

[解決済み] Railsのサブドメイン間でセッション(Cookie)を共有する?

2023-02-04 11:15:13

質問

私は、各ユーザーが会社に所属し、その会社がサブドメイン(私はbasecampスタイルのサブドメインを使用しています)を持っているアプリをセットアップしています。私が直面している問題は、railsが複数のクッキー(lvh.meとsubdomain.lvh.meのための1つ)を作成していることで、私のアプリケーションでかなりの数の破損(フラッシュメッセージが一度サインインするとすべてのリクエストを通して持続することなど)を引き起こしています。

私はこれを私の/cofig/initilizers/session_store.rbファイルに記述しています。

AppName::Application.config.session_store :cookie_store, key: '_application_devise_session', domain: :all

domain: :allはGoogleで見つけた標準的な答えのようですが、私の場合はそれがうまくいっていないようです。どんな助けでも感謝します!

どのように解決するのですか?

結局のところ、'domain: all' は、そのセッション中に訪問されたすべての異なるサブドメインのクッキーを作成します (そして、リクエスト間でそれらが回されることを保証します)。domain引数が渡されない場合、それは、同じセッションで訪問されるすべての異なるドメインに対して新しいクッキーが作成され、古いものは破棄されることを意味します。私が必要としたのは、ドメインが変わっても、セッションを通して持続する単一のクッキーでした。したがって domain: "lvh.me" を渡すことで、開発中の問題は解決しました。これは異なるサブドメイン間でそこに留まる単一のクッキーを作成します。

さらに詳しい説明を必要とする人のために、これは素晴らしいリンクです。 http://excid3.com/blog/sharing-a-devise-user-session-across-subdomains-with-rails-3/