2

、、などのようhttp://localhost:8000にローカルで複数の Django 開発サイトを実行しています。http://localhost:8001http://localhost:8002

もともと、私は SESSION_COOKIE_DOMAIN と CSRF_COOKIE_DOMAIN を '' or に設定していまし127.0.0.1たが、これにより各サイトが他の Cookie を上書きし、サイトを切り替えるたびにログインしなければならなくなりました。使用してみ127.0.0.1:<port>ましたが、効果がありませんでした。

これらのサイトで個別の Cookie を使用するにはどうすればよいですか?

4

2 に答える 2

3

この問題の 1 つの解決策は、ローカル ドメイン名解決を使用して、異なる開発サーバーのそれぞれにアクセスすることです。SESSION_COOKIE_DOMAINを None のままにしておくと、返される Cookie は標準のドメイン Cookie であり、リクエストと同じドメインになります。

ローカル ホスト ファイル エントリを追加する方法について説明しているhttp://en.wikipedia.org/wiki/Hosts_(file)をご覧ください。

次のような hosts ファイルを使用します。

127.0.0.1 www.testserver1.com www.testserver2.com

次に、次の場所にあるさまざまなテスト サーバーにそれぞれアクセスできます。

http://www.testserver1.com:8000
http://www.testserver2.com:8001

私はこれを試していませんが、うまくいくはずです。

または、Mikhail の回答に従って、インスタンスごとに異なるセッション Cookie 名を使用します。

于 2013-07-18T13:30:59.010 に答える
0

Cookie は、さまざまな RFC に従って、同じドメインのポート間で共有されます (例: https://www.rfc-editor.org/rfc/rfc6265#section-8.5を参照)。したがって、これは django 固有ではありません。

少なくともセッションを分離するには、別の SESSION_COOKIE_NAME を使用できると思います。

于 2013-07-18T12:44:16.097 に答える