chenjunkai 6 years ago
parent
commit
db9b9a0057
3 changed files with 16 additions and 64 deletions
  1. 0 4
      Controller/Test.py
  2. 14 33
      Controller/UserController.py
  3. 2 27
      Object/TokenObject.py

+ 0 - 4
Controller/Test.py

@@ -32,15 +32,11 @@ class Test(View):
         return self.do_apns(request_dict)
         # return self.do_get_putOss_url(request.GET)
         # return self.do_gcm_push(request)
-
     def do_apns(self,request_dict):
         token_val = request_dict.get('token_val',None)
         pem_path = os.path.join(BASE_DIR,'Ansjer/file/apns_pem/apns-dev.pem')
         print(pem_path)
         response = ResponseObject()
-        # apns_config = {
-        #     'appbundleId': {'pem_path': 'xxxx', 'topic': 'topic', 'password': 'password'}
-        # }
         try:
             import apns2
             now_time = int(time.time())

+ 14 - 33
Controller/UserController.py

@@ -13,6 +13,7 @@
 """
 import datetime
 import traceback
+
 import simplejson as json
 from django.contrib.auth.hashers import make_password, check_password  # 对密码加密模块
 from django.db.models import Q
@@ -1022,13 +1023,6 @@ class v2LoginView(TemplateView):
         language = request_dict.get('language', 'en')
         response = ResponseObject(language)
         was_limited = getattr(request, 'limited', False)
-        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
-        if x_forwarded_for:
-            ip = x_forwarded_for.split(',')[0]  # 所以这里是真实的ip
-        else:
-            ip = request.META.get('REMOTE_ADDR')  # 这里获得代理ip
-        print ('访问者的ip:')
-        print (ip)
         if was_limited is True:
             return response.json(5)
         return self.validates(request_dict, response)
@@ -1047,50 +1041,46 @@ class v2LoginView(TemplateView):
     def validates(self, request_dict, response):
         username = request_dict.get('userName', None)
         password = request_dict.get('userPwd', None)
-        # 标志ios登录还是安卓登录标记
-        phone_code = request_dict.get('phone_code', None)
-        if not phone_code:
-            phone_code = ''
         if not username or not password:
             return response.json(111)
         username = username.strip()
         password = password.strip()
         data_valid = DataValid()
         if data_valid.email_validate(username):
-            return self.do_email_login(phone_code,username, password, response)
+            return self.do_email_login(username, password, response)
         elif data_valid.mobile_validate(username):
-            return self.do_phone_login(phone_code,username, password, response)
+            return self.do_phone_login(username, password, response)
         elif data_valid.name_validate(username):
-            return self.do_name_login(phone_code,username, password, response)
+            return self.do_name_login(username, password, response)
         else:
             return response.json(107)
 
-    def do_email_login(self, phone_code,email, password, response):
+    def do_email_login(self, email, password, response):
         user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
-        return self.valid_login(phone_code,user_qs, password, response)
+        return self.valid_login(user_qs, password, response)
 
-    def do_phone_login(self, phone_code,phone, password, response):
+    def do_phone_login(self, phone, password, response):
         user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
-        return self.valid_login(phone_code,user_qs, password, response)
+        return self.valid_login(user_qs, password, response)
 
-    def do_name_login(self,phone_code, username, password, response):
+    def do_name_login(self, username, password, response):
         user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
                                              is_active=True, user_isValid=True)
-        return self.valid_login(phone_code,user_qs, password, response)
+        return self.valid_login(user_qs, password, response)
 
-    def valid_login(self,phone_code, user_qs, password, response):
+    def valid_login(self, user_qs, password, response):
         if not user_qs.exists():
             return response.json(104)
         users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
-                               'phone','machine_code', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
+                               'phone', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
         if not check_password(password, users['password']):
             return response.json(111)
         userID = users['userID']
         tko = TokenObject()
-        res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': users['username'], 'machine_code': phone_code})
+        res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': users['username'],'m_code':'123413243214'})
         if tko.code == 0:
             now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
-            user_qs.update(last_login=now_time, language=response.lang, machine_code=phone_code )
+            user_qs.update(last_login=now_time, language=response.lang)
             res['rid'] = users['role__rid']
             res['roleName'] = users['role__roleName']
             res['permList'] = ModelService.own_permission(userID)
@@ -1106,15 +1096,6 @@ class v2LoginView(TemplateView):
             res['username'] = users['username'] if users['username'] is not None else ''
             res['userEmail'] = users['userEmail'] if users['userEmail'] is not None else ''
             res['phone'] = users['phone'] if users['phone'] is not None else ''
-            reds = RedisObject()
-            print (res['access_token'])
-            if  phone_code == users['machine_code'] :
-                res['machine_code'] = '本机登录'
-            else:
-                res['machine_code'] = '别地登录被挤出!'
-            if not reds.set_data(key=res['userID']+'machine_code', val=phone_code, expire=5): #1个小时
-                return response.json(10, '生成缓存错误')
-
             return response.json(0, res)
         else:
             return response.json(tko.code)

+ 2 - 27
Object/TokenObject.py

@@ -14,7 +14,6 @@
 from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET, OAUTH_REFRESH_TOKEN_SECRET, OAUTH_ACCESS_TOKEN_TIME, \
     OAUTH_REFRESH_TOKEN_TIME
 import jwt, time
-from Model.models import Device_User
 from Object.RedisObject import RedisObject
 
 
@@ -22,7 +21,7 @@ class TokenObject:
 
     def __init__(self, token=None):
         if token == 'local':
-            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJleHAiOjE1NTUzODEyMjd9.Wb3pjrJgnM80uJB7m2SOmTl-w7hrYrB4Es5hYpRSxc4'
+            token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJleHAiOjE1NTQ3MTQ2OTJ9.jMVRK8GtkZsTfypykBKOHL7Kyxf3BCs0_FQpmK6fAis'
         if token == 'test':
             token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiMTM4MDAxMzgwMDEiLCJ1c2VySUQiOiIxNTE1NjQyNjIzMzc5Mzk1MTM4MDAxMzgwMDEiLCJsYW5nIjoiZW4iLCJleHAiOjE1NTI2MTIxOTF9.sO8BtSclN6B-qwqNmYWbICatHYEtyMdoqzZ0hcOSsmg'
         self.token = token
@@ -38,30 +37,7 @@ class TokenObject:
             return
         try:
             res = jwt.decode(self.token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
-            reds = RedisObject()
-            resetCode = reds.get_data(key=res['userID']+'machine_code')
-            if resetCode is False :
-                # 过期不存在情况
-                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'] :
-                            # 与数据库的唯一码不一致
-                            self.code = 309
-                            return
-                        else:
-                            reds.set_data(key=res['userID'] + 'machine_code', val=res['machine_code'],
-                                                 expire=5)  # 1个小时
-                else:
-                    if ev['machine_code'] == '':
-                        # 空的情况
-                        reds.set_data(key=res['userID'] + 'machine_code', val=res['machine_code'],
-                                             expire=5)  # 1个小时
-            else :
-                # 存在情况
-                print ('相同的machine_code值')
-
+            # print(res)
             self.userID = res.get('userID', None)
             self.lang = res.get('lang', None)
             self.user = res.get('user', '')
@@ -135,4 +111,3 @@ class TokenObject:
             lang = self.lang
             refreshRes = self.generate(data={'userID': userID, 'lang':lang , 'user': user})
             return refreshRes
-