Source code for jwt_allauth.token_refresh.views

from rest_framework import status
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework_simplejwt.exceptions import TokenError, InvalidToken
from rest_framework_simplejwt.views import TokenRefreshView as DefaultTokenRefreshView
from rest_framework.throttling import UserRateThrottle

from jwt_allauth.token_refresh.serializers import TokenRefreshSerializer
from jwt_allauth.utils import get_user_agent, user_agent_dict


[docs] class TokenRefreshView(DefaultTokenRefreshView): serializer_class = TokenRefreshSerializer throttle_classes = [UserRateThrottle] @get_user_agent def post(self, request: Request, *args, **kwargs) -> Response: input_data = {} if 'refresh' in request.data: input_data['refresh'] = request.data['refresh'] data = {**input_data, **user_agent_dict(self.request)} serializer = self.get_serializer(data=data) try: serializer.is_valid(raise_exception=True) except TokenError as e: raise InvalidToken(e.args[0]) return Response(serializer.validated_data, status=status.HTTP_200_OK)