Добавление других полей модели AUTH_USER с помощью SimpleJWT в Django Rest Framework
Я использую Django Rest Framework с простым JWT. Все, что я хочу сделать, это получить или добавить дополнительное поле (например, first_name, last_name) с помощью Refresh & Access Token. Я хочу использовать модель AUTH_USER
, а не пользовательскую модель User
. Я пробовал использовать пользовательскую
TokenObtainPairView
но все равно не работает и я получаю только Refresh & Access Token.
При проверке на jwt.io он показывает только id. Может ли кто-нибудь помочь? Есть ли что-нибудь на моей стороне, чтобы сделать. Пожалуйста, помогите
{ "token_type": "access", "exp": 1631511174,"jti":"13b76d1d5e2a4d978cc19fabbdc0fc9e", "user_id": 3 }
Views.py
from rest_framework_simplejwt.views import TokenObtainPairView
class TokenObtainPairView(TokenObtainPairView):
# Replace the serializer with your custom
serializer_class = MyTokenObtainPairSerializer
# token_obtain_pair = TokenObtainPairView.as_view()
serializers.py
class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
def validate(self, attrs):
data = super().validate(attrs)
refresh = self.get_token(self.user)
data['refresh'] = str(refresh)
data.pop('refresh', None) # remove refresh from the payload
data['access'] = str(refresh.access_token)
# Add extra responses here
data['username'] = self.user.username
data['first_name'] = self.user.first_name
data['last_name'] = self.user.last_name
return data