在django中使用手动登录

时间:2012-05-24 06:59:31

标签: django authentication redirect login django-authentication

我正在关注auth函数login()的django文档上的sample code,以了解可以实现登录的各种方法。我知道built-in formsbuilt-in views,最终会最终使用它们,但我想理解,而不仅仅是知道。

我遇到的问题是用户在check_user中成功登录,但在调用重定向时似乎没有在会话中持续存在。为什么is_authenticated()函数给出了不一致的结果?我觉得这与RequestContext有关,但我不确定是什么。

def check_user(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request, user)
            test1 = user.is_authenticated() ### True
            test2 = request.user.is_authenticated() ### False
            return HttpResponseRedirect(NEXT_PAGE) ### NEXT_PAGE gives request.user.is_authenticated() is False
        else:
            return HttpResponse("disabled account")
    else:
        return HttpResponse("invalid login")

0 个答案:

没有答案