Przeglądaj źródła

优化刷新token接口

peng 1 rok temu
rodzic
commit
e3df8ae2d6
2 zmienionych plików z 18 dodań i 28 usunięć
  1. 15 10
      Controller/UserController.py
  2. 3 18
      Object/TokenObject.py

+ 15 - 10
Controller/UserController.py

@@ -762,7 +762,8 @@ class refreshTokenViewV3(TemplateView):
                 requests.post(url=url + 'v3/account/deleteUser', data=data, timeout=3)
 
     def validation(self, request_dict):
-        token = request_dict.get('token', None)
+        access_token = request_dict.get('access_token', None)
+        refresh_token = request_dict.get('refresh_token', None)
         lang = request_dict.get('lang', None)
         language = request_dict.get('language', None)
         password = request_dict.get('userPwd', None)
@@ -770,20 +771,24 @@ class refreshTokenViewV3(TemplateView):
         iterations = request_dict.get('iterations', None)
         password_version = request_dict.get('pwdVersion', 'V1')
         response = ResponseObject(lang)
-        if not token:
-            return response.json(444, 'token')
+        if not all([access_token, refresh_token]):
+            return response.json(444, 'access_token, refresh_token')
 
         if lang is None:
             lang = language
 
         try:
-            # token检验
-            tko = TokenObject(token)
-            res = tko.refresh()  # 更新refresh_token
-            if tko.code != 0:
-                return response.json(tko.code)
-            userID = tko.userID
-            tko.lang = lang
+            # 校验access_token
+            access_token_obj = TokenObject(access_token)
+            if access_token_obj.code != 0:
+                return response.json(access_token_obj.code)
+            # 校验refresh_token
+            refresh_token_obj = TokenObject(refresh_token)
+            res = refresh_token_obj.refresh()  # 更新refresh_token
+            if refresh_token_obj.code != 0:
+                return response.json(refresh_token_obj.code)
+            userID = refresh_token_obj.userID
+            refresh_token_obj.lang = lang
 
             # 国外正式服,判断是否需要重新登陆
             user_qs = Device_User.objects.filter(userID=userID).values('password', 'region_country')

+ 3 - 18
Object/TokenObject.py

@@ -162,21 +162,6 @@ class TokenObject:
         else:
             self.userID = res.get('userID', None)
             self.user = res.get('user', '')
-            app_bundle_id = res.get('appBundleId', None)
-            if self.userID:
-                if app_bundle_id:
-                    redis_obj = RedisObject()
-                    key = 'token_user_{}_{}'.format(self.userID, app_bundle_id)
-                    redis_token = redis_obj.get_data(key)
-                    if not redis_token:
-                        refreshRes = self.generate(data=res)
-                        return refreshRes
-                    if self.token != redis_token:
-                        self.code = 310
-                        return
-                    else:
-                        refreshRes = self.generate(data=res)
-                        return refreshRes
-            else:
-                self.code = 309
-                return
+            refreshRes = self.generate(data=res)
+            return refreshRes
+