0

外部ベースを使用してユーザーを認証するdjangoアプリに取り組んでいます。ログイン後、いくつかの情報がセッションに取得されます。問題は、この初期化されたセッションが、再認証せずに使用するブラウザーまたはデスクトップに関係なく、同じ session_id と同じであることです...

認証:

def login(request):
    if request.method == 'POST':
        login = request.POST["login"]
        password = request.POST["password"]
        #do something to authenticate by requesting an url
        request.session['infos'] = #infos string recieved
        return HttpResponseRedirect(reverse('WebSite:index'))

MIDDLEWARE_CLASSES には django.contrib.sessions.middleware.SessionMiddleware が含まれます

SESSION_ENGINE = "django.contrib.sessions.backends.db"

INSTALLED_APPS には django.contrib.sessions が含まれます

これの他の影響は、どこかで認証された後、別の場所で試してみると CSRF エラーが発生することです...

私を助けてくれてありがとう!

4

1 に答える 1

2

答えはキャッシュにありました:

django が作成したキャッシュは、同じ session_id を持つすべてのリクエストで同じ Cookie を提供します。そのため、キャッシュをより適切な設定に設定するまで、それを無効にしました。

于 2013-05-03T10:49:28.237 に答える