2011-08-04 14 views
0

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クッキーがわかりません。

+0

私は、セッションコードのどこにでもあなたのクッキーが嫌になることはありません。 'flush()'と呼ばれ、3つのメソッドはクッキーで何もしません。ミドルウェアは単に 'response.set_cookie()'を呼び出します。あなたのコードのどこか他の場所ではないと確信していますか? –

+0

必ずフラッシュが呼び出されますか? _auth_idがセッションに存在する場合にのみflushが呼び出されることを覚えていますか? logoutはセキュリティ上の理由から常にセッションをフラッシュします(https://code.djangoproject.com/ticket/6941) – Willian

答えて

0

本当にあなたのクッキーは本当に同じドメインにありますか?

Two different domains 
www.mysite.com 
mysite.com 

私は、クッキーとジャンゴネジを持っていたことがありませんが、私は非WWWクッキーの問題対WWWを持っていました。

関連する問題