Как проверить токен при аутентификации jwt в django rest framework
как проверить токен JWT в простой аутентификации jwt. мне нужно проверить, когда пользователь отправляет запрос, если срок действия токена доступа истек, то он перенаправляет его, чтобы обновить токен.
serializers.py
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
def validate(self, attrs):
# The default result (access/refresh tokens)
data = super(CustomTokenObtainPairSerializer, self).validate(attrs)
# Custom data you want to include
data.update({'email': self.user.email})
data.update({'id': self.user.id})
data.update({'status':"success"})
# and everything else you want to send in the response
return data
views.py
class CustomTokenObtainPairView(TokenObtainPairView):
# Replace the serializer with your custom
serializer_class = CustomTokenObtainPairSerializer
urls.py
from rest_framework_simplejwt.views import TokenRefreshView, TokenVerifyView
urlpatterns = [
path('token/', views.CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('token/verify/', TokenVerifyView.as_view(), name='token_verify'),
]
urlpatterns = format_suffix_patterns(urlpatterns)
Вы должны добавить jwt authentication middleware в ваш класс аутентификации settings.py для rest framework.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
...
)