django.contrib.auth.loginを使用しているユーザにログインすると、すべてのカスタムCookieとサードパーティのCookieが削除されていることに気付きました。これは、私のGoogle Web Optimizerテストのように、ユーザーを追跡できなくなるなど、多くのことを壊しています。ユーザーにログインするときにこれを防ぐ最良の方法は何ですか?カスタムと第三者のクッキーを記憶するDjangoのログインを投稿する
django/contrib/auth/__init__.py
のlogin()のコードを見ると、多くのカスタマイズ可能性が示されず、犯人はrequest.session.flush()
と思われます。私の最初の考えは、login()の呼び出しの前にrequest.COOKIESディクショナリを単純にコピーし、それをpost-loginリクエストにコピーすることでしたが、除外するDjangoクッキーがわかりません。
私は、セッションコードのどこにでもあなたのクッキーが嫌になることはありません。 'flush()'と呼ばれ、3つのメソッドはクッキーで何もしません。ミドルウェアは単に 'response.set_cookie()'を呼び出します。あなたのコードのどこか他の場所ではないと確信していますか? –
必ずフラッシュが呼び出されますか? _auth_idがセッションに存在する場合にのみflushが呼び出されることを覚えていますか? logoutはセキュリティ上の理由から常にセッションをフラッシュします(https://code.djangoproject.com/ticket/6941) – Willian