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