Warm tip: This article is reproduced from serverfault.com, please click

python-Django身份验证不返回任何内容,但登录有效吗?

(python - Django authenticate returning none but login works?)

发布于 2020-12-02 21:47:59

当我运行以下代码时,它会显示“完成”。但是,当我检查用户是否返回任何东西时,它没有返回-它返回None。如果dj_login()正在运行而没有任何错误,这是一个问题吗?

def login(request):
    if request.method == 'POST':
        try:
            username = request.POST.get('username')
            password = request.POST.get('password')
            try:
                user = authenticate(request, username=username, password=password)

                dj_login(request, user, backend='django_auth_ldap.backend.LDAPBackend')
                messages.success(request, "You have been logged in.")
                print("done")
                return render(request, "app/login.html")
            except Exception as e:
                print(e)
                messages.error(request, "Failed to Login Errors: {}".format(e))
                return render(request, "app/login.html")

        except Exception as e:
            messages.error(request, "Failed to Login Errors: {}".format(e))
            return render(request, "app/login.html")

    return render(request, 'app/login.html')
Questioner
EpRa
Viewed
11
Chymdy 2020-12-03 05:52:35

你应该检查身份验证是否返回了实际用户或“无”。一个简单的if语句将为你做到这一点。