У нас уже давно работает сайт, который использует django-allauth
для аутентификации с использованием любого из:
- Традиционная регистрация по электронной почте
- Логин через гугл
- Вход в Твиттер
- Логин в фейсбук
... но теперь мы хотим, чтобы кто-либо не создавал новую учетную запись, но при этом позволял людям, которые ранее создали учетную запись, используя любой из этих методов, иметь возможность войти в систему. Есть ли настройка, которая позволит нам это сделать? Мне не ясно, позволит ли нам какой-либо из этих задокументированных настроек настроить это.
Текущие настройки, относящиеся к django-allauth:
INSTALLED_APPS = (
'django.contrib.auth',
...
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.twitter',
...
)
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth`
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
)
SOCIALACCOUNT_PROVIDERS = {
'google': {'SCOPE': ['https://www.googleapis.com/auth/userinfo.profile'],
'AUTH_PARAMS': {'access_type': 'online'}},
'facebook': {'SCOPE': ['email',]},
}
LOGIN_REDIRECT_URL = '/'
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = True
SOCIALACCOUNT_AUTO_SIGNUP = True