Автоматическое подключение социальной учетной записи Django allauth
У меня есть сайт, поддерживаемый Django-allauth, с устаревшими локальными пользователями, большинство из которых в конечном итоге должны подключиться к social login при следующем входе в систему, когда бы это ни произошло. Единственным поддерживаемым поставщиком социальных сетей является Microsoft Graph. Все электронные письма от провайдера должны рассматриваться как подтвержденные, и в случае, если они соответствуют какому-либо существующему пользователю, они также рассматриваются как один и тот же пользователь без дополнительной проверки.
Соответствующие настройки allauth, как показано ниже:
ACCOUNT_LOGIN_METHODS = {"email"}
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
SOCIALACCOUNT_PROVIDERS = {
"microsoft": {
"EMAIL_AUTHENTICATION_AUTO_CONNECT": True,
"EMAIL_AUTHENTICATION": True,
"EMAIL_VERIFICATION": False,
"VERIFIED_EMAIL": True,
"APPS": [
#client id, secret masked
]
}
}
Вход в систему с учетной записью социальной сети, у которой зарегистрирован адрес электронной почты (и который должен быть подключен при входе в систему), работает, но подключенная социальная учетная запись не создается.
Вход в систему с учетной записью социальной сети без участия существующего пользователя создает нового пользователя с соответствующей учетной записью социальной сети, как ожидалось и желалось.
Если я напишу свои собственные перехватчики для настроенного SocialAccountAdapter (или добавлю приемники к сигналам allauth), я смогу достичь своей цели, но, по крайней мере, согласно моей интерпретации документации allauth, это кажется немного халтурным и не похоже на предполагаемый способ в текущей версии. версия.
Версия Allauth - 65.7.0