使用GET请求验证和登录用户

时间:2018-06-22 09:24:11

标签: django python-3.x

我有一个任务,以指定的登录名和密码作为url字符串中的参数,在GET请求中登录用户。我已经做到了:

def login_view(request):
    username = request.GET.get('login')
    password = request.GET.get('passwd')
    print('Is authenticated', request.user.is_authenticated)
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        print('Is authenticated', request.user.is_authenticated)
        return redirect('home')
    return HttpResponse("Login failed")

,它必须可以正常工作,因为它似乎符合文档(请求方法除外)。在文档中它是POST,但我必须使其成为GET。

所以现在未通过验证:

Is authenticated False
Is authenticated False

,我确定这是由于错误的方法类型引起的。您对如何解决此问题有任何建议吗?

2 个答案:

答案 0 :(得分:0)

您尝试打印用户名和密码吗?他们通过正确吗?

代替此

 print('Is authenticated', request.user.is_authenticated)

打印此

print('Is authenticated', user.is_authenticated)

答案 1 :(得分:0)

好像我搞砸了进口,我已经进口

from django.contrib.auth.views import login

代替

from django.contrib.auth import login