Explorar o código

修改根据用户授权码获取令牌接口

locky hai 1 ano
pai
achega
24de369362
Modificáronse 1 ficheiros con 26 adicións e 20 borrados
  1. 26 20
      controller/index.py

+ 26 - 20
controller/index.py

@@ -200,37 +200,43 @@ class oa2TokenView(TemplateView):
     def validate(self, request_dict):
         # 增加对code和client_id的校验代码,返回access_token和refresh_token
         code = request_dict.get("code", None)
+        grant_type = request_dict.get("grant_type", None)   # refresh_token, authorization_code
         client_id = request_dict.get("client_id", None)
         refresh_token = request_dict.get("refresh_token", None)
 
         logger = logging.getLogger('django')
         logger.info('请求获取令牌接口参数:{}'.format(request_dict))
 
-        user_qs = UserModel.objects.filter(code=code)
-        if not user_qs.exists():
-            user_qs = UserModel.objects.filter(refresh_token=refresh_token)
-        if user_qs.exists():
-            access_token = CommonService.encrypt_data(randomlength=32)
-            refresh_token = CommonService.encrypt_data(randomlength=32)
-
-            is_update = user_qs.update(access_token=access_token, refresh_token=refresh_token)
-            if is_update:
-                res_json = {
-                    "access_token": access_token,
-                    "token_type": "bearer",
-                    "expires_in": 3600,
-                    "refresh_token": refresh_token,
-                }
-                logger.info('请求获取令牌接口响应:{}'.format(res_json))
-                return JsonResponse(res_json)
-            else:
-                logger.info({'msg': 'error'})
-                return JsonResponse({'msg': 'error'})
+        # 根据用户授权码获取令牌
+        if grant_type == 'authorization_code':
+            user_qs = UserModel.objects.filter(user_authorization_code=code)
         else:
+            user_qs = UserModel.objects.filter(code=code)
+            if not user_qs.exists():
+                user_qs = UserModel.objects.filter(refresh_token=refresh_token)
+
+        if not user_qs.exists():
             res_json = {'msg': 'code not exists'}
             logger.info('请求获取令牌接口响应:{}'.format(res_json))
             return JsonResponse(res_json)
 
+        access_token = CommonService.encrypt_data(randomlength=32)
+        refresh_token = CommonService.encrypt_data(randomlength=32)
+
+        is_update = user_qs.update(access_token=access_token, refresh_token=refresh_token)
+        if is_update:
+            res_json = {
+                "access_token": access_token,
+                "token_type": "bearer",
+                "expires_in": 3600,
+                "refresh_token": refresh_token,
+            }
+            logger.info('请求获取令牌接口响应:{}'.format(res_json))
+            return JsonResponse(res_json)
+        else:
+            logger.info({'msg': 'error'})
+            return JsonResponse({'msg': 'error'})
+
 
 def runSendRtspMsg_thread(UID, PWD, MSG):
     command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)