0

このビューでユーザーを認証します。

def note_edit_auth(request):
        if request.method == 'POST':
                form = EditAuthForm(request.POST)
                if form.is_valid():
                        email = form.cleaned_data['email']
                        password = form.cleaned_data['password']
                        user = auth.authenticate(username = email, password = password)

                        if user and user.is_authenticated():
                                request.session['email'] = email
                                request.session['password'] = password
                                request.session['user'] = user
                                return HttpResponseRedirect('/note_edit')
                        else:
                                return HttpResponse('User or password is either incorrect or does not exist.')

そして、それは機能します。user確かに認証されています。次にrequest.user、上記のビューが次のようにリダイレクトされる別のビューからアクセスしようとします。

def note_edit(request):
        if request.method == 'POST' and request.user.is_authenticated():
                form_edit = EditForm(request.POST)
                user = request.session['email']
                auth.logout(request)
                return HttpResponse('Done!')
        elif request.method == 'GET' and request.user.is_authenticated():
                form_edit = EditForm(irrelevantfoofoo)
        else:
                return HttpResponse('User not authenticated.')
        return render_to_response('editnote.htm', {'form': form_edit}, context_instance = RequestContext(request))

そして突然、ユーザーが認証されていないという応答が返されました。request.userコンソールに印刷しようとすると、AnonymousUser として表示されます。そして、これは昨夜はうまくいきませんでした。今日、私は目を覚まし、いくつかの変更を加えると、誤動作を開始します。すべての変更を元に戻しましたが、それでも動作が正しくありません。

なぜこれが起こっているのですか?どうすれば修正できますか?

4

1 に答える 1

0

auth.authenticate()指定されたユーザー資格情報が有効かどうかを確認するだけです。実際にユーザーをログインするには、を使用する必要がありますlogin()

于 2013-01-31T19:10:41.003 に答える