Django Rest Framework is_valid не возвращает ошибку
Я пытаюсь реализовать социальный вход Google, я проверяю TokenID
, что я получаю от фронтенда и вот что я получаю:
{'iss': 'accounts.google.com', 'azp': '{SomeData}', 'aud': '{SomeData}', 'sub': '107380020022573036077', 'email': '{SomeData}', 'email_verified': True, 'at_hash': 'Nu2TdaoGnS5t1MomTRdmKw', 'name': '{SomeData}', 'picture': '{SomeData}', 'given_name': '{SomeData}', 'family_name': '{SomeData}', 'locale': 'en', 'iat': 1637094558, 'exp': 1637098158, 'jti': '{SomeData}'}
Мне нужен email, имя_фамилия, пароль для регистрации аккаунта, вот модель:
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
public_api = models.TextField(default=None, null=True)
secret_api = models.TextField(default=None, null=True)
market = models.TextField(default=None, null=True)
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=150)
last_name = models.CharField( max_length=150)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
Вот сериализатор:
from rest_framework import serializers
from django.contrib.auth import get_user_model
class RegisterSerializer(serializers.ModelSerializer):
first_name = serializers.CharField(source='given_name')
last_name = serializers.CharField(source='family_name')
email = serializers.CharField(required=True)
class Meta:
model = get_user_model()
fields=['email', 'first_name', 'last_name']
Вот вид:
class GoogleLogin(APIView):
permission_classes = [AllowAny]
def post(self, request):
data = request.data
token = data['access_token']
token_info = id_token.verify_oauth2_token(token, requests.Request(), '')
serializer = RegisterSerializer(data=token_info)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response('Success')
И все, что я получаю в консоли, это следующее сообщение:
Неправильный запрос: /auth/google
<>>>[17/Nov/2021 00:36:24] "POST /auth/google HTTP/1.1" 400 82
.