Как удалить промежуточные страницы при Django all auth Facebook login?

Я использую Django all-auth для включения социальных логинов Google & Facebook в мое приложение. Конфигурация выглядит следующим образом:

Настройки Django Allauth:

ACCOUNT_ALLOW_REGISTRATION = env.bool("DJANGO_ACCOUNT_ALLOW_REGISTRATION", True)
# https://django-allauth.readthedocs.io/en/latest/configuration.html
ACCOUNT_AUTHENTICATION_METHOD = "email"
# https://django-allauth.readthedocs.io/en/latest/configuration.html
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
# https://django-allauth.readthedocs.io/en/latest/configuration.html
ACCOUNT_EMAIL_VERIFICATION = "none"
# https://django-allauth.readthedocs.io/en/latest/configuration.html
ACCOUNT_ADAPTER = "streampala.users.adapters.AccountAdapter"
# https://django-allauth.readthedocs.io/en/latest/configuration.html
SOCIALACCOUNT_ADAPTER = "streampala.users.adapters.SocialAccountAdapter"
# https://django-allauth.readthedocs.io/en/latest/forms.html
ACCOUNT_FORMS = {
    'login': 'allauth.account.forms.LoginForm',
    'signup': 'users.forms.AdvertisersSignUpForm',
    'add_email': 'allauth.account.forms.AddEmailForm',
    'change_password': 'allauth.account.forms.ChangePasswordForm',
    'set_password': 'allauth.account.forms.SetPasswordForm',
    'reset_password': 'allauth.account.forms.ResetPasswordForm',
    'reset_password_from_key': 'allauth.account.forms.ResetPasswordKeyForm',
    'disconnect': 'allauth.socialaccount.forms.DisconnectForm',
}


SOCIALACCOUNT_PROVIDERS = {
"google": {
    "SCOPE": [
        "profile",
        "email",
        "https://www.googleapis.com/auth/youtube",
        "https://www.googleapis.com/auth/youtube.readonly",
        "https://www.googleapis.com/auth/youtube.upload",
        "https://www.googleapis.com/auth/youtube.force-ssl",
    ],
    "AUTH_PARAMS": {
        "access_type": "offline",
    },
},

"facebook":
    {
    'METHOD': 'oauth2',
    'SCOPE': ['email', 'public_profile'],
    'AUTH_PARAMS': {'auth_type': 'reauthenticate'},
    'INIT_PARAMS': {'cookie': True},
    'FIELDS': [
        'id',
        'first_name',
        'last_name',
        'middle_name',
        'name',
        'name_format',
        'picture',
        'short_name'
    ],
    'EXCHANGE_TOKEN': True,
    'LOCALE_FUNC': lambda request: 'en_US',
    'VERIFIED_EMAIL': False,
    'VERSION': 'v7.0',
    },
}

Вот что я вижу после нажатия на кнопку входа в Google/Facebook: Confirmation Screen on choosing Social login

После завершения входа в Facebook появляется вот это: SignUp Email Form After Facebook OAuth

Я не хочу ни одного из этих двух промежуточных экранов, и я также пытался изменить конфигурацию. Но эти экраны не упоминаются в документации Django All-Auth, так что я что-то упустил?

Попробуйте установить SOCIALACCOUNT_LOGIN_ON_GET в значение TRUE.

https://django-allauth.readthedocs.io/en/latest/release-notes.html#backwards-incompatible-changes-1

В docs не рекомендуется использовать SOCIALACCOUNT_LOGIN_ON_GET = True по соображениям безопасности. Вместо этого используйте форму для отправки запроса POST:

<form action="{% provider_login_url 'facebook' %}" method="post">
  {% csrf_token %}
  <button type="submit">Continue with Facebook</button>
</form>

Вам также необходимо установить SOCIALACCOUNT_AUTO_SIGNUP = True в settings.py (это значение по умолчанию).

Откройте файл setting.py проекта django и добавьте следующую строку в нижней части файла

SOCIALACCOUNT_LOGIN_ON_GET = True
Вернуться на верх