When I run the below code, it prints "done." However, when I check if user is returning anything, it doesn't - it returns None. Is this a problem, if dj_login() is running without any errors?
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')
You ought to check if the authentication returned an actual user or None. A simple if statement would do that for you.