#django #authentication #gmail-api #google-developers-console
Вопрос:
Я настроил свое приложение django, чтобы иметь возможность входить в сторонние приложения Google и facebook. Однако всякий раз, когда у меня уже есть учетная запись, которая подписывается на уже существующую учетную запись gmail, я получаю странную страницу регистрации, которая выглядит следующим образом:
Menu:
Sign In
Sign Up
Sign Up
You are about to use your Google account to login to example.com. As a final step, please complete the following form:
Username:
testuser
An account already exists with this e-mail address. Please sign in to that account first, then connect your Google account.
E-mail (optional):
email@test.com
Sign Up »
Есть ли способ исправить это, чтобы он мог запросить у пользователя другое электронное письмо вместо того, чтобы ломаться подобным образом? Если пользователь ранее не был зарегистрирован через приложение, эта проблема не возникает.
Ответ №1:
Простой. Создайте тестовую функцию, которая проверяет, существует ли пользователь (при попытке входа в систему) уже на основе электронной почты, имени пользователя или того, что у вас есть, и верните это сообщение пользователю.
например:
def login(request):
if request.method == 'POST':
# perform some logic
try:
User.objects.filter(email=email).exists()
return "User with email already exists"
except User.objects.filter(email=email).DoesNotExist():
return "User doesn't exist yet"