Django с djoser и social auth не работает так, как ожидалось, у меня есть проблема, когда я публикую свое состояние и код на URL

Я использую Django с Djoser, чтобы иметь возможность использовать google/facebook в качестве социальной аутентификации, я создал CustomUserModel. Я использую OAuth2 для социальной авторизации, у меня есть учетные данные в google и т.д. Когда я делаю GET-запрос по этому url: введите описание изображения здесь

Мой конфиг Redirect_url на платформе разработчика google console: введите описание изображения здесь

У меня есть ответ с состоянием и кодом на URL. Но когда я пытаюсь POST эти 2 параметра (состояние и код), я сталкиваюсь с ошибкой:

{ "non_field_errors": [ "Authentication process canceled" ] }

Я включаю также состояние на куки, потому что я использую куки HttpOnly

Я пытался переделать проект в Google, чтобы получить новые учетные данные, но все равно не работает. Как я могу решить эту ошибку? Спасибо, ребята

settings.py:

Пользовательские представления (для использования cookies в приложении пользователя):

serializers.py:

from django.contrib.auth import get_user_model
from djoser.serializers import UserCreateSerializer

User = get_user_model()


class CreateUserSerializer(UserCreateSerializer):
    class Meta(UserCreateSerializer.Meta):
        model = User
        fields = ['id', 'email', 'first_name', 'last_name', 'password']

authentication.py (пользовательский аутентификатор):

from django.conf import settings
from rest_framework_simplejwt.authentication import JWTAuthentication


class CustomJWTAuthentication(JWTAuthentication):
    def authenticate(self, request):
        try:
            header = self.get_header(request)
            # Try first send cookie, if theres no cookie, get from header.
            if header is None:
                raw_token = request.COOKIES.get(settings.AUTH_COOKIE)
            else:
                raw_token = self.get_raw_token(header)

            if raw_token is None:
                return None

            validated_token = self.get_validated_token(raw_token)

            return self.get_user(validated_token), validated_token
        except:
            return None

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