Django: AuthStateMissing в /oauth/complete/google-oauth2/

Я использую social-auth-app-django для аутентификации GoogleOauth2. Он работает нормально для всех пользователей, но в случае с администратором django он выдает мне следующую ошибку:

AuthStateMissing at /oauth/complete/google-oauth2/
Session value state missing.

Я попробовал все ответы, размещенные на stackoverflow, но ошибка все еще сохраняется. Вот результат, который он возвращает. enter image description here

Значение состояния вроде бы присутствует, но либо оно становится нулевым, либо каким-то образом переопределяется.

Это мой класс GoogleOAuth2, созданный путем переопределения класса GoogleOAuth2 от social-auth-app-django. Хотя разница невелика, за исключением конвейера от базового класса. Он отлично работает для входа неадминистративных пользователей.

class GoogleOAuth2(GoogleOAuth2):
"""Google OAuth2 authentication backend"""
name = 'google-oauth2'
REDIRECT_STATE = False
AUTHORIZATION_URL = 'https://accounts.google.com/o/oauth2/auth'
ACCESS_TOKEN_URL = 'https://accounts.google.com/o/oauth2/token'
ACCESS_TOKEN_METHOD = 'POST'
REVOKE_TOKEN_URL = 'https://accounts.google.com/o/oauth2/revoke'
REVOKE_TOKEN_METHOD = 'GET'
# The order of the default scope is important
DEFAULT_SCOPE = ['openid', 'email', 'profile']
EXTRA_DATA = [
    ('refresh_token', 'refresh_token', True),
    ('expires_in', 'expires'),
    ('token_type', 'token_type', True)
]

def pipeline(self, pipeline, pipeline_index=0, *args, **kwargs):
    out = self.run_pipeline(pipeline, pipeline_index, *args, **kwargs)
    user_ip = get_request_ip_address(self.strategy.request)
    if not isinstance(out, dict):
        return out
    user = out.get('user')
    if user:
        user.social_user = out.get('social')
        user.is_new = out.get('is_new')
        if user.is_new:
            logger.info(f'Register attempt', extra={"email": user.email, "remote_ip": user_ip, "status": "success", "user_id": user.pk, "oauth_backend": "google"})
        else:
            logger.info(f'Login attempt', extra={"email": user.email, "remote_ip": user_ip, "status": "success", "user_id": user.pk, "oauth_backend": "google"})
    return user

Я пробовал следующие решения, устанавливая эти значения в файле settings.py:

SOCIAL_AUTH_REDIRECT_IS_HTTPS = True
SESSION_COOKIE_SAMESITE = None
SESSION_COOKIE_HTTPONLY = False
Вернуться на верх