Команда Django authenticate() возвращает None
Я делаю сайт, на котором есть вход в Google, и я пытаюсь зарегистрировать пользователя, когда он нажимает кнопку входа в Google. Вот код, который не работает:
def google_login(request):
security_key = request.GET.get("security_key","")
email = request.GET.get("email","")
if security_key == "" or email == "":
return redirect("/403/")
timestamp_now = time.time()
try:
obj = GoogleSignupToLoginSecurityKey.objects.get(email=email,security_key=security_key)
if (timestamp_now-float(obj.timestamp_created)) < 50:
print(email)
user = authenticate(email=email, password="GOOGLE USER")
print(user)
if user is not None:
login(request, user)
else:
redirect_url = "/accounts/signup/"
return redirect(redirect_url+"?error=google_unknown")
return redirect("/accounts/signup/welcome/")
else:
return redirect("/accounts/signup?error=google_unknown")
except:
return redirect("/403/")
return
Вся защита и временная метка сделаны в целях безопасности, но не работает только команда authenticate(). Для этой команды электронная почта извлекается с помощью параметра url, и я проверил, что он правильный. Для аккаунта Google я сделал пароль "GOOGLE USER", так как я ленив и не потрудился убрать поле пароля для аккаунта Google, это означает, что каждый аккаунт Google имеет одинаковый пароль, но для этого типа аккаунтов пароль совершенно необязателен.
Команда возвращает "None".
Надеюсь, вы поняли это, и я не слишком запутал вас.