2016-12-12 13 views
0

私はDjangoとdjango-tenant-schemasでマルチテナントアーキテクチャを実装しようとしています。ドメインとサブドメイン間でクッキーを共有する

http://app.mysite.com:8000/からbaseappに正常にアクセスし、アプリケーションにログインするときにcookie sessionId(httpのみ)を設定しています。 (ポート8000​​は開発用です)

私は今、http://tenant1.mysite.com:8000/accounting/にリクエストしようとしています。私はリクエストヘッダを検査する場合、しかし、私はクッキーは私の設定にもかかわらず、設定されていないことがわかり、私が持っているファイル:

SESSION_COOKIE_DOMAIN = ".mysite.com" 
CSRF_COOKIE_DOMAIN = ".mysite.com" 

私は.mysite.comに私のCookieドメインを設定することへのアクセスを可能にするという印象の下にありましたサブドメイン。私はここで何が欠けていますか?

+0

ユーザーセッションやCookieの値を共有したいですか? –

+0

[特定のサブドメインでdjangoセッションを共有する]の可能な複製(http://stackoverflow.com/questions/3742675/sharing-django-sessions-on-specific-subdomains) –

+0

@sideffectセッションIDはクッキーに格納されます – wheresmycookie

答えて

0

これはちょっと古いと思いますが、似たような問題について疑問に思う人がいたら、クッキーは設定されていますが、SessionMiddlewareは受け取ったセッションIDに対して有効なセッションを見つけられません。たとえば、データベースセッションのバックエンドを使用していて、をTENANT_APPSのリストに入れたとします。この場合、app.mysite.comにログインしたときに、セッションがappテナントに対応するデータベーススキーマに格納されていて、tenant1.mysite.comにアクセスしようとしたときにSessionMiddlewaretenant1スキーマに格納されているセッションを検索したため、Djangoはセッションを見つけることができません。あなたがセッションを格納するためのデータベースバックエンドを使用している場合

だから、これまで結論は、ある、あなたはあなたのSHARED_APPSリストにdjango.contrib.sessionsを入れていないTENANT_APPSリストにする必要があります。

これが役に立ちます。

関連する問題