1
1
from rest_framework .views import APIView
2
2
from rest_framework .response import Response
3
3
from rest_framework import status
4
- from .serializers import RegisterSerializer , LoginSerializer
4
+ from .serializers import RegisterSerializer , LoginSerializer , RefreshTokenSerializer
5
5
from .services .cognito_service import CognitoService
6
6
from django .conf import settings
7
7
from .models import User
@@ -44,7 +44,7 @@ def post(self, request):
44
44
return Response (
45
45
{
46
46
"access_token" : response ["AuthenticationResult" ]["AccessToken" ],
47
- "id_token " : response ["AuthenticationResult" ]["IdToken " ],
47
+ "refresh_token " : response ["AuthenticationResult" ]["RefreshToken " ],
48
48
},
49
49
status = status .HTTP_200_OK ,
50
50
)
@@ -53,6 +53,26 @@ def post(self, request):
53
53
return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
54
54
55
55
56
+ class RefreshTokenView (APIView ):
57
+ def post (self , request ):
58
+ serializer = RefreshTokenSerializer (data = request .data )
59
+ if serializer .is_valid ():
60
+ refresh_token = serializer .validated_data ["refresh_token" ]
61
+ user_sub = serializer .validated_data ["user_sub" ]
62
+ try :
63
+ response = cognito_service .refresh_tokens (refresh_token , user_sub )
64
+ return Response (
65
+ {
66
+ "access_token" : response ["AuthenticationResult" ]["AccessToken" ],
67
+ },
68
+ status = status .HTTP_200_OK ,
69
+ )
70
+ except Exception as e :
71
+ return Response ({"error" : str (e )}, status = status .HTTP_400_BAD_REQUEST )
72
+ else :
73
+ return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
74
+
75
+
56
76
class ProfileView (APIView ):
57
77
def get_user_id_from_token (self , request ):
58
78
try :
0 commit comments