Я собираюсь использовать электронную почту вместо имени пользователя, когда я получаю токен доступа и обновляю токен sh с помощью djangoreostframework-simplejwt. Таким образом, после написания кода я мог получить доступ к своему браузеру и подтвердить, что поле, которое было именем пользователя, было переименовано в электронную почту. Но когда я отправляю электронное письмо пользователя в поле электронной почты, появляется следующая ошибка.
"detail": "Активная учетная запись с указанными учетными данными не обнаружена"
Вы можете сказать мне, что не так с моим кодом? Вот мой код.
Serializers.py
from rest_framework_simplejwt.serializers import TokenObtainSerializer
from django.contrib.auth.models import User
class EmailTokenObtainSerializer(TokenObtainSerializer):
username_field = User.EMAIL_FIELD
class CustomTokenObtainPairSerializer(EmailTokenObtainSerializer):
@classmethod
def get_token(cls, user):
return RefreshToken.for_user(user)
def validate(self, attrs):
data = super().validate(attrs)
refresh = self.get_token(self.user)
data["refresh"] = str(refresh)
data["access"] = str(refresh.access_token)
return data
views.py
from rest_framework_simplejwt.views import TokenObtainPairView
from .serializers import CustomTokenObtainPairSerializer
class EmailTokenObtainPairView(TokenObtainPairView):
serializer_class = CustomTokenObtainPairSerializer
спасибо