首页 > 解决方案 > 使用 GET 请求验证和登录用户

问题描述

我的任务是在 GET 请求中使用指定的登录名和密码作为 url 字符串中的参数登录用户。我已经这样做了:

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

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

标签: djangopython-3.x

解决方案


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

而不是这个

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

打印这个

print('Is authenticated', user.is_authenticated)

推荐阅读