浏览代码

登录接口单点登录

peng 1 年之前
父节点
当前提交
1be99d8f51
共有 1 个文件被更改,包括 32 次插入20 次删除
  1. 32 20
      Controller/UserController.py

+ 32 - 20
Controller/UserController.py

@@ -2436,6 +2436,8 @@ class oneClickLoginView(TemplateView):
         token = request_dict.get('token', None)
         language = request_dict.get('language', 'en')
         app_bundle_id = request_dict.get('appBundleId', None)
+        token_version = request_dict.get('tokenVersion', None)
+        token_val = request_dict.get('tokenVal', None)
         response = ResponseObject(language)
 
         if not token:
@@ -2463,6 +2465,8 @@ class oneClickLoginView(TemplateView):
                         'lang': response.lang,
                         'user': user_qs[0]['username'],
                         'appBundleId': app_bundle_id,
+                        'tokenVersion': token_version,
+                        'tokenVal': token_val,
                         'm_code': '123413243214'
                     }
                 )
@@ -2802,6 +2806,8 @@ class wxAuthSignView(TemplateView):
     def ValidationError(self, request_dict, response):
         grant_code = request_dict.get('grant_code', None)  # 微信授权code
         appBundleID = request_dict.get('appBundleID', None)  # 包名
+        token_val = request_dict.get('tokenVal', None)  # 推送token
+        token_version = request_dict.get('tokenVersion', None)  # token版本
         print('grant_code')
         print(grant_code)
         print('appBundleID')
@@ -2844,12 +2850,12 @@ class wxAuthSignView(TemplateView):
                         userID = user_extend_qs[0].userID_id
                         print(userID)
                         user_qs = Device_User.objects.filter(userID=userID)
-                        return self.do_login(user_qs, appBundleID, response)
+                        return self.do_login(user_qs, appBundleID, token_val, token_version, response)
                     else:
                         # 如果用户为绑定过则创建用户并进行登录返回token
                         userID = CommonService.getUserID(getUser=False)
                         nickname = res_json['nickname'] + '_' + CommonService.RandomStr(4)
-                        return self.do_register(userID, nickname, response, appBundleID, unionID)
+                        return self.do_register(userID, nickname, response, appBundleID, token_val, token_version, unionID)
                 else:
                     return response.json(414, 'access_token,openid')
             else:
@@ -2859,14 +2865,14 @@ class wxAuthSignView(TemplateView):
         # if wxcode
 
     # 登录
-    def do_login(self, user_qs, app_bundle_id, response):
+    def do_login(self, user_qs, app_bundle_id, token_val, token_version, response):
         now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
         userID = user_qs[0].userID
         print('userID' + userID)
         tko = TokenObject()
         user_list = user_qs.values("NickName", "userIconUrl", "userIconPath", "username", "userEmail", "phone")
         res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': user_list[0]["username"],
-                                 'appBundleId': app_bundle_id})
+                                 'appBundleId': app_bundle_id, 'tokenVal': token_val, 'tokenVersion': token_version})
         # 增加角色
         user_qs[0].role.add(Role.objects.get(rid=1))
         role_dict = ModelService.own_role(userID=userID)
@@ -2895,7 +2901,7 @@ class wxAuthSignView(TemplateView):
         user_qs.update(last_login=now_time, online=True)
         return response.json(0, res)
 
-    def do_register(self, userID, nickname, response, appBundleId, unionID):
+    def do_register(self, userID, nickname, response, appBundleId, token_val, token_version, unionID):
         data_valid = DataValid()
         if data_valid.name_validate(userID) is not True:
             return response.json(105)
@@ -2925,7 +2931,7 @@ class wxAuthSignView(TemplateView):
             user_qs = Device_User.objects.filter(Q(userID=userID))
             print('---')
             print(user_qs)
-            return self.do_login(user_qs, appBundleId, response)
+            return self.do_login(user_qs, appBundleId, token_val, token_version, response)
 
 
 # 获取验证码
@@ -4065,6 +4071,8 @@ class Image_Code_RegisterView(TemplateView):
         email_scription = request_dict.get('email_scription', None)
         push_scription = request_dict.get('push_scription', None)
         app_bundle_id = request_dict.get('appBundleId', None)
+        token_val = request_dict.get('tokenVal', None)
+        token_version = request_dict.get('tokenVersion', None)
 
         if not all([userEmail, password, lang, imageCodeId, valid_code]):
             return response.json(444)
@@ -4167,17 +4175,17 @@ class Image_Code_RegisterView(TemplateView):
             subscription_thread = threading.Thread(target=UserSubscriptionControllerView.subscription,
                                                    args=(subscribers,))
             subscription_thread.start()
-        return self.do_login(email_qs, app_bundle_id, response)
+        return self.do_login(email_qs, app_bundle_id, token_val, token_version, response)
 
     @staticmethod
-    def do_login(user_qs, app_bundle_id, response):
+    def do_login(user_qs, app_bundle_id, token_val, token_version, response):
         now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
         user_qs.update(last_login=now_time, online=True)
         userID = user_qs[0].userID
         tko = TokenObject()
         user_list = user_qs.values("NickName", "userIconUrl", "userIconPath", "username", "userEmail", "phone")
         res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': user_list[0]["username"],
-                                 'appBundleId': app_bundle_id})
+                                 'appBundleId': app_bundle_id, 'tokenVal': token_val, 'tokenVersion': token_version})
         # 增加角色
         user_qs[0].role.add(Role.objects.get(rid=1))
         role_dict = ModelService.own_role(userID=userID)
@@ -4377,6 +4385,8 @@ class v3LoginByCodeView(View):
     def validate(self, request_dict, response):
         phone = request_dict.get('phone', None)
         app_bundle_id = request_dict.get('appBundleId', None)
+        token_val = request_dict.get('tokenVal', None)
+        token_version = request_dict.get('tokenVersion', None)
         code = request_dict.get('code', None)
 
         if phone and code:
@@ -4391,18 +4401,18 @@ class v3LoginByCodeView(View):
                 if login_code == code:
                     if response.lang is None:
                         response.lang = 'en'
-                    return self.do_phone_login(phone, app_bundle_id, response)
+                    return self.do_phone_login(phone, app_bundle_id, token_val, token_version, response)
                 else:
                     return response.json(121)
             else:
                 return response.json(120)
 
-    def do_phone_login(self, phone, app_bundle_id, response):
+    def do_phone_login(self, phone, app_bundle_id, token_val, token_version, response):
         user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True,
                                              user_isValid=True)
-        return self.valid_login(user_qs, app_bundle_id, response)
+        return self.valid_login(user_qs, app_bundle_id, token_val, token_version, response)
 
-    def valid_login(self, user_qs, app_bundle_id, response):
+    def valid_login(self, user_qs, app_bundle_id, token_val, token_version, response):
         if not user_qs.exists():
             return response.json(104)
         # users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
@@ -4413,8 +4423,8 @@ class v3LoginByCodeView(View):
         userID = users['userID']
         tko = TokenObject()
         res = tko.generate(
-            data={'userID': userID, 'lang': response.lang, 'user': users['username'],
-                  'm_code': '123413243214', 'appBundleId': app_bundle_id})
+            data={'userID': userID, 'lang': response.lang, 'user': users['username'], 'tokenVersion': token_version,
+                  'm_code': '123413243214', 'appBundleId': app_bundle_id, 'tokenVal': token_val})
         # 添加用户登录类型
         oauth_qs = UserOauth2Model.objects.filter(userID__userID=userID)
         auth_type = 0
@@ -4586,6 +4596,8 @@ class AppleAuthLogin(View):
         lang = request_dict.get('lang', None)
         identity_token = request_dict.get('identity_token', None)
         app_bundle_id = request_dict.get('app_bundle_id', None)  # 包名
+        token_val = request_dict.get('tokenVal', None)  # 包名
+        token_version = request_dict.get('tokenVersion', None)  # 包名
 
         response = ResponseObject(lang)
         identity_token = CommonService.decode_data(identity_token)
@@ -4626,7 +4638,7 @@ class AppleAuthLogin(View):
                             nickname = claims['email']
                         else:
                             nickname = 'apple_{num}'.format(num=CommonService.RandomStr(6, False))
-                        return self.do_register(userID, nickname, response, app_bundle_id, unionID)
+                        return self.do_register(userID, nickname, response, app_bundle_id, token_val, token_version, unionID)
 
                 except Exception as e:
                     print(e)
@@ -4637,14 +4649,14 @@ class AppleAuthLogin(View):
             return response.json(444)
 
     # 登录
-    def do_login(self, user_qs, app_bundle_id, response):
+    def do_login(self, user_qs, app_bundle_id, token_val, token_version, response):
         now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
         userID = user_qs[0].userID
         print('userID' + userID)
         tko = TokenObject()
         user_list = user_qs.values("NickName", "userIconUrl", "userIconPath", "username", "userEmail", "phone")
         res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': user_list[0]["username"],
-                                 'appBundleId': app_bundle_id})
+                                 'appBundleId': app_bundle_id, 'tokenVal': token_val, 'tokenVersion': token_version})
         # 增加角色
         user_qs[0].role.add(Role.objects.get(rid=1))
         role_dict = ModelService.own_role(userID=userID)
@@ -4674,7 +4686,7 @@ class AppleAuthLogin(View):
         user_qs.update(last_login=now_time, online=True)
         return response.json(0, res)
 
-    def do_register(self, userID, nickname, response, appBundleId, unionID):
+    def do_register(self, userID, nickname, response, appBundleId, token_val, token_version, unionID):
         data_valid = DataValid()
         if data_valid.name_validate(userID) is not True:
             return response.json(105)
@@ -4704,7 +4716,7 @@ class AppleAuthLogin(View):
             user_qs = Device_User.objects.filter(Q(userID=userID))
             print('---')
             print(user_qs)
-            return self.do_login(user_qs, appBundleId, response)
+            return self.do_login(user_qs, appBundleId, token_val, token_version, response)
 
 
 class LocalUserView(View):