1
1
import json
2
+ import logging
2
3
from django .http import Http404
3
4
from rest_framework import status
4
5
from token_service import settings
13
14
from .models import UserTokens
14
15
import jwt
15
16
17
+ logging .basicConfig (level = logging .INFO )
18
+ logger = logging .getLogger (__name__ )
19
+
16
20
class CustomTokenObtainPairView (TokenObtainPairView ):
17
21
"""
18
22
CustomTokenObtainPairView class to handle token request.
@@ -49,7 +53,7 @@ def handle_token_request(ch, method, properties, body):
49
53
access_token = str (refresh .access_token )
50
54
user .token_data = {
51
55
"refresh" : str (refresh ),
52
- "token " : access_token
56
+ "access " : access_token
53
57
}
54
58
user .save ()
55
59
response_message = {
@@ -83,9 +87,9 @@ def handle_token_request(ch, method, properties, body):
83
87
"access" : access_token
84
88
}
85
89
except Exception as err :
86
- response_message = {"error" : err }
90
+ response_message = {"error" : str ( err ) }
87
91
except Exception as err :
88
- response_message = {"error" : err }
92
+ response_message = {"error" : str ( err ) }
89
93
publish_message ("user_token_response_queue" , json .dumps (response_message ))
90
94
91
95
@@ -122,6 +126,7 @@ def post(self, request, *args, **kwargs) -> Response:
122
126
123
127
124
128
class ValidateToken ():
129
+ @staticmethod
125
130
def validate_token (access_token ) -> bool :
126
131
"""
127
132
Validate the refresh token.
@@ -158,19 +163,29 @@ def validate_token_request_queue(self, ch, method, properties, body):
158
163
"""
159
164
data = json .loads (body )
160
165
access_token = data .get ("access" )
166
+ id = data .get ("id" )
167
+ response = {}
161
168
try :
162
- if ValidateToken .validate_token (access_token ):
163
- user = get_object_or_404 (UserTokens , token_data__access = access_token )
164
- response = {"access_token" : "Valid token" }
165
- else :
166
- response = {"error" : "Invalid token" }
169
+ result = self .validate_token (access_token )
170
+ if result :
171
+ logger .info ("result= %s" , result )
172
+ user = UserTokens .objects .filter (id = id , token_data__access = access_token ).first ()
173
+
174
+ logger .info ("user.username= %s" , user .username )
175
+ logger .info ("user.token_data['access']= %s" , user .token_data ["access" ])
176
+ if result :
177
+ response = {"access_token" : "Valid token" }
178
+ else :
179
+ response = {"error" : "token mismatch" }
167
180
except jwt .ExpiredSignatureError :
168
181
response = {"error" : "token is expired" }
169
182
except jwt .InvalidTokenError :
170
183
response = {"error" : "Invalid token" }
184
+ except Http404 :
185
+ response = {"error" : "User has not logged in yet!!" }
171
186
except Exception as err :
172
- response = {"error" : "Invalid token" }
173
-
187
+ response = {"error" : str ( err ) }
188
+ logger . info ( "response = %s" , response )
174
189
publish_message ("validate_token_response_queue" , json .dumps (response ))
175
190
176
191
def start_consumer (self ) -> None :
@@ -197,7 +212,7 @@ def handle_logout_request_queue(ch, method, properties, body):
197
212
except Http404 :
198
213
response_message = {"error" : "User has not logged in yet" }
199
214
except Exception as err :
200
- response_message = {"error" : "Something unxpected happend" }
215
+ response_message = {"error" : str ( err ) }
201
216
publish_message ("logout_response_queue" , json .dumps (response_message ))
202
217
203
218
def start_consumer (self ):
0 commit comments