14
14
jwt_response_payload_handler = api_settings .JWT_RESPONSE_PAYLOAD_HANDLER
15
15
16
16
17
- class ObtainJSONWebToken (APIView ):
17
+ class JWTAPIView (APIView ):
18
18
"""
19
- API View that receives a POST with a user's username and password.
20
-
21
- Returns a JSON Web Token that can be used for authenticated requests.
19
+ Base API View that various JWT interactions inherit from.
22
20
"""
23
21
throttle_classes = ()
24
22
permission_classes = ()
25
23
authentication_classes = ()
26
24
parser_classes = (parsers .FormParser , parsers .JSONParser ,)
27
25
renderer_classes = (renderers .JSONRenderer ,)
28
- serializer_class = JSONWebTokenSerializer
29
26
30
27
def post (self , request ):
31
28
serializer = self .serializer_class (data = request .DATA )
@@ -40,32 +37,24 @@ def post(self, request):
40
37
return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
41
38
42
39
43
- class VerifyJSONWebToken (APIView ):
40
+ class ObtainJSONWebToken (JWTAPIView ):
41
+ """
42
+ API View that receives a POST with a user's username and password.
43
+
44
+ Returns a JSON Web Token that can be used for authenticated requests.
45
+ """
46
+ serializer_class = JSONWebTokenSerializer
47
+
48
+
49
+ class VerifyJSONWebToken (JWTAPIView ):
44
50
"""
45
51
API View that checks the veracity of a token, returning the token if it
46
52
is valid.
47
53
"""
48
- throttle_classes = ()
49
- permission_classes = ()
50
- authentication_classes = ()
51
- parser_classes = (parsers .FormParser , parsers .JSONParser ,)
52
- renderer_classes = (renderers .JSONRenderer ,)
53
54
serializer_class = VerifyJSONWebTokenSerializer
54
55
55
- def post (self , request ):
56
- serializer = self .serializer_class (data = request .DATA )
57
-
58
- if serializer .is_valid ():
59
- user = serializer .object .get ('user' ) or request .user
60
- token = serializer .object .get ('token' )
61
- response_data = jwt_response_payload_handler (token , user , request )
62
-
63
- return Response (response_data )
64
-
65
- return Response (serializer .errors , status = status .HTTP_400_BAD_REQUEST )
66
-
67
56
68
- class RefreshJSONWebToken (VerifyJSONWebToken ):
57
+ class RefreshJSONWebToken (JWTAPIView ):
69
58
"""
70
59
API View that returns a refreshed token (with new expiration) based on
71
60
existing token
0 commit comments