11

こんにちは、シンプルなサインイン ソリューションを持つマルチテナント Rails 4 アプリケーションがあります。ただし、各ユーザーには、ログイン後にユーザーがリダイレクトされるサブドメインがあります。

問題は、セッションがサブドメイン間で共有されないという既知の問題が原因で、サブドメインに到達するとログインできなくなることです。

この問題に対していくつかの異なる解決策を試しましたが、サブドメイン間でセッションを持続させることができません。これは私の開発環境が原因であると思いますか?

この質問に対するすべての回答を試しました: Rails のサブドメイン間でセッション (Cookie) を共有しますか?

何も機能していないようです。私がここに欠けているものはありますか?ブラウザですか、Rails 4ですか、それとも....? この問題にどのようにアプローチすればよいですか?

編集: 私の sessions_store 初期化子:

Imagesite::Application.config.session_store :cookie_store, key: '_imagesite_session', :domain => "imagesite.dev"

私も試し".imagesite.dev"てみ:allました。

上記のリンク先の他の質問でエヴァンが説明した解決策も試しました。

サブドメインの例:「ole.imagesite.dev」または「ole2.imagesite.dev」は、ユーザーがサブドメインとして入力したものに基づく基本的なサブドメインです。

4

3 に答える 3

5

Rails 4.2.5.1 では、次のように動作します。

Rails.application.config.session_store :cookie_store, key: '_magic_session', tld_length: 2

はい、domain: オプションなしで。

更新:domain:オプションをに設定することをお勧めします:all

Rails.application.config.session_store :cookie_store, key: '_magic_session', domain: :all, tld_length: 2

開発環境またはプロキシの背後で、ドメイン名ではなく IP アドレスを保持する必要があるdomain: "magic.com"場合があります。env["HTTP_HOST"]nginx の場合proxy_set_header HOST $host:$server_port;、ドメイン名を保持できます。

于 2016-03-16T03:11:49.550 に答える