瀏覽代碼

重新优化登录接口

pzb 6 年之前
父節點
當前提交
7a451053f3
共有 2 個文件被更改,包括 18 次插入59 次删除
  1. 2 22
      Controller/UserController.py
  2. 16 37
      Object/TokenObject.py

+ 2 - 22
Controller/UserController.py

@@ -14,8 +14,6 @@
 import datetime
 import traceback
 import simplejson as json
-import socket
-import uuid
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from django.db.models import Q
 from django.http import HttpResponseRedirect
@@ -1114,27 +1112,9 @@ class v2LoginView(TemplateView):
                 res['machine_code'] = '本机登录'
             else:
                 res['machine_code'] = '别地登录被挤出!'
-            if not reds.set_data(key=res['userID']+'_tokenValues', val=res['access_token'], expire=300): #1个小时
+            if not reds.set_data(key=res['userID']+'machine_code', val=phone_code, expire=5): #1个小时
                 return response.json(10, '生成缓存错误')
-            # if not reds.del_data(res['userID']):
-            #     return response.json(10, '删除缓存失败')
-
-            # 获取主机名
-            hostname = socket.gethostname()
-            # 获取IP
-            ip = socket.gethostbyname(hostname)
-
-            # 获取Mac地址
-            def get_mac_address():
-                mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
-                return ":".join([mac[e:e + 2] for e in range(0, 11, 2)])
-
-            # ipList = socket.gethostbyname_ex(hostname)
-            # print(ipList)
-            print("主机名:", hostname)
-            print("IP:", ip)
-            print("Mac地址:", get_mac_address())
-            print (reds.get_data(key=res['userID']))
+
             return response.json(0, res)
         else:
             return response.json(tko.code)

+ 16 - 37
Object/TokenObject.py

@@ -39,52 +39,31 @@ class TokenObject:
         try:
             res = jwt.decode(self.token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
             reds = RedisObject()
-            resetCode = reds.get_data(key=res['userID']+'_tokenValues')
+            resetCode = reds.get_data(key=res['userID']+'machine_code')
             if resetCode is False :
-                # 空
-                print('token是已经过期了')
-                user_qs = Device_User.objects.filter(userID=res['userID'], is_active=True, user_isValid=True).values(
-                    "machine_code", )
-                order_list = list(user_qs)
-                print ('继续是当前唯一编码')
-                print (resetCode)
-                print (self.token)
-                for ev in order_list:
-                    if resetCode != self.token:
-                        print (res['machine_code'])
-                        print (ev['machine_code'])
+                # 过期不存在情况
+                if resetCode != res['machine_code']:
+                    user_qs = Device_User.objects.filter(userID=res['userID'], is_active=True,user_isValid=True).values("machine_code", )
+                    order_list = list(user_qs)
+                    for ev in order_list:
                         if res['machine_code'] != ev['machine_code'] :
-                            print ('发现不同唯一码那么就309')
+                            # 与数据库的唯一码不一致
                             self.code = 309
                             return
                         else:
-                            if not reds.set_data(key=res['userID'] + '_tokenValues', val=self.token,
-                                                 expire=300):  # 1个小时
+                            if not reds.set_data(key=res['userID'] + 'machine_code', val=res['machine_code'],
+                                                 expire=5):  # 1个小时
                                 return response.json(10, '生成缓存错误')
-                            print ('相同的用户token值过期了,而且那个唯一码又没有过期的,然后续期')
-                    else:
-                        print ('相同的用户token值并续期了')
-                    if ev['machine_code'] =='':
-                        if not reds.set_data(key=res['userID'] + '_tokenValues', val=self.token,
-                                             expire=300):  # 1个小时
-                            return response.json(10, '生成缓存错误')
-                        print ('旧的方式访问,过期后,再续期')
-            elif (resetCode!=self.token) :
-                user_qs = Device_User.objects.filter(userID=res['userID'], is_active=True, user_isValid=True).values(
-                    "machine_code", )
-                order_list = list(user_qs)
-                for ev in order_list:
+                else:
                     if ev['machine_code'] == '':
-                        if not reds.set_data(key=res['userID'] + '_tokenValues', val=self.token,
-                                             expire=300):  # 1个小时
+                        # 空的情况
+                        if not reds.set_data(key=res['userID'] + 'machine_code', val=res['machine_code'],
+                                             expire=5):  # 1个小时
                             return response.json(10, '生成缓存错误')
-                        print ('旧的方式登录访问还没有过期只是token值不同了,然后续期')
-                    else :
-                        print ('相同用户id不同token值')
-                        self.code = 309
-                        return
+
             else :
-                print ('相同的用户token值')
+                # 存在情况
+                print ('相同的machine_code值')
 
             self.userID = res.get('userID', None)
             self.lang = res.get('lang', None)