Django: AuthStateMissing в /oauth/complete/google-oauth2/
Я использую social-auth-app-django для аутентификации GoogleOauth2. Он работает нормально для всех пользователей, но в случае с администратором django он выдает мне следующую ошибку:
AuthStateMissing at /oauth/complete/google-oauth2/
Session value state missing.
Я попробовал все ответы, размещенные на stackoverflow, но ошибка все еще сохраняется. Вот результат, который он возвращает.

Значение состояния вроде бы присутствует, но либо оно становится нулевым, либо каким-то образом переопределяется.
Это мой класс 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