Przeglądaj źródła

记录token日志

peng 11 miesięcy temu
rodzic
commit
daa79e430f

+ 14 - 0
Ansjer/cn_config/formal_settings.py

@@ -270,6 +270,15 @@ LOGGING = {
             'formatter': 'standard',
             'encoding': 'utf-8',
         },
+        'token': {
+            'level': 'INFO',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/token/token.log',
+            'backupCount': 60,
+            'when': 'D',
+            'formatter': 'standard',
+            'encoding': 'utf-8',
+        },
     },
     'loggers': {
         'django': {
@@ -298,5 +307,10 @@ LOGGING = {
             'level': 'INFO',
             'propagate': False
         },
+        'token': {
+            'handlers': ['token'],
+            'level': 'INFO',
+            'propagate': False
+        },
     }
 }

+ 14 - 0
Ansjer/cn_config/test_settings.py

@@ -313,6 +313,15 @@ LOGGING = {
             'formatter': 'standard',
             'encoding': 'utf-8',
         },
+        'token': {
+            'level': 'INFO',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/token/token.log',
+            'backupCount': 60,
+            'when': 'D',
+            'formatter': 'standard',
+            'encoding': 'utf-8',
+        },
     },
     'loggers': {
         'django': {
@@ -346,5 +355,10 @@ LOGGING = {
             'level': 'INFO',
             'propagate': False
         },
+        'token': {
+            'handlers': ['token'],
+            'level': 'INFO',
+            'propagate': False
+        },
     }
 }

+ 14 - 0
Ansjer/eur_config/formal_settings.py

@@ -266,6 +266,15 @@ LOGGING = {
             'formatter': 'standard',
             'encoding': 'utf-8',
         },
+        'token': {
+            'level': 'INFO',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/token/token.log',
+            'backupCount': 60,
+            'when': 'D',
+            'formatter': 'standard',
+            'encoding': 'utf-8',
+        },
     },
     'loggers': {
         'django': {
@@ -294,5 +303,10 @@ LOGGING = {
             'level': 'INFO',
             'propagate': False
         },
+        'token': {
+            'handlers': ['token'],
+            'level': 'INFO',
+            'propagate': False
+        },
     }
 }

+ 14 - 0
Ansjer/us_config/formal_settings.py

@@ -270,6 +270,15 @@ LOGGING = {
             'formatter': 'standard',
             'encoding': 'utf-8',
         },
+        'token': {
+            'level': 'INFO',
+            'class': 'logging.handlers.TimedRotatingFileHandler',
+            'filename': BASE_DIR + '/static/log/token/token.log',
+            'backupCount': 60,
+            'when': 'D',
+            'formatter': 'standard',
+            'encoding': 'utf-8',
+        },
     },
     'loggers': {
         'django': {
@@ -298,5 +307,10 @@ LOGGING = {
             'level': 'INFO',
             'propagate': False
         },
+        'token': {
+            'handlers': ['token'],
+            'level': 'INFO',
+            'propagate': False
+        },
     }
 }

+ 1 - 2
Controller/UserController.py

@@ -33,7 +33,7 @@ from Controller.UserDevice.UserSubscriptionController import UserSubscriptionCon
 from Model.models import Device_User, Role, UidPushModel, UserOauth2Model, UserExModel, Device_Info, UidSetModel, \
     UserAppFrequencyModel, CountryIPModel, CountryModel, UidChannelSetModel, Order_Model, UID_Bucket, Unused_Uid_Meal, \
     GatewayPush, CountryLanguageModel, LanguageModel, IcloudUseDetails, IcloudStorageRecord, VodBucketModel, LogModel, \
-    UserEmailSubscriptions, TokenRecord
+    UserEmailSubscriptions
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.AWS.SesClassObject import SesClassObject
 from Object.AliSmsObject import AliSmsObject
@@ -323,7 +323,6 @@ class LogoutView(TemplateView):
         m_code = request_dict.get('m_code', None)
         try:
             with transaction.atomic():
-                TokenRecord.objects.filter(access_token=token, user_id=tko.userID).delete()
                 Device_User.objects.filter(userID=tko.userID).update(online=False)
                 Device_Info.objects.filter(userID=tko.userID).update(NotificationMode=0)
                 if m_code:

+ 0 - 16
Model/models.py

@@ -5282,19 +5282,3 @@ class CustomCustomerDevice(models.Model):
     class Meta:
         db_table = 'custom_customer_device'
         verbose_name = '定制客户设备'
-
-
-class TokenRecord(models.Model):
-    id = models.AutoField(primary_key=True, verbose_name='自增标记ID')
-    user_id = models.CharField(default='', max_length=32, db_index=True, verbose_name='用户id')
-    data = models.JSONField(verbose_name=u'加密信息', null=True)
-    access_token = models.TextField(default='', verbose_name='请求token')
-    refresh_token = models.TextField(default='', verbose_name='刷新token')
-    code = models.IntegerField(default=0, verbose_name=u'响应码')
-    error_info = models.TextField(verbose_name='报错信息', default='', )
-    created_time = models.IntegerField(default=0, verbose_name='创建时间')
-    updated_time = models.IntegerField(default=0, verbose_name='更新时间')
-
-    class Meta:
-        db_table = 'token_record'
-        verbose_name = 'token记录表'

+ 15 - 28
Object/TokenObject.py

@@ -1,14 +1,15 @@
 import datetime
-
+import logging
 import jwt
 import time
 import requests
 
-from Model.models import TokenRecord
 from Object.RedisObject import RedisObject
 from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET, OAUTH_REFRESH_TOKEN_SECRET, OAUTH_ACCESS_TOKEN_TIME, \
     OAUTH_REFRESH_TOKEN_TIME, CONFIG_INFO, CONFIG_TEST, CONFIG_CN, DETECT_PUSH_DOMAINS, LOGGER
 
+logger = logging.getLogger('token')
+
 
 class TokenObject:
 
@@ -46,16 +47,16 @@ class TokenObject:
 
         except jwt.ExpiredSignatureError as e:
             self.code = 309
-            # self.update_token(repr(e))
+            logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             return
         except Exception as e:
             self.code = 309
-            # self.update_token(repr(e))
+            logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             return
         else:
             if not self.userID:
                 self.code = 309
-                # self.update_token('缺少用户ID')
+                logger.info('errMsg:{}, token:{}'.format('缺少用户ID', self.token))
                 return
             else:
                 if self.userID:
@@ -69,7 +70,8 @@ class TokenObject:
                             return res
                         if self.token != redis_token:
                             self.code = 310
-                            # self.update_token('重复登录')
+                            logger.info(
+                                'errMsg:{}, token:{}, redis_token:{}'.format('多点登录', self.token, redis_token))
                             return
                     self.code = 0
                     return res
@@ -77,10 +79,9 @@ class TokenObject:
                     self.code = 309
                     return
 
-    def generate(self, old_refresh_token=None, data=None):
+    def generate(self, data=None):
         if data is None:
             data = {}
-        now_time = int(time.time())
         try:
             if CONFIG_INFO == CONFIG_TEST or CONFIG_INFO == CONFIG_CN:
                 access_expire = int(datetime.timedelta(days=60).total_seconds())
@@ -129,21 +130,11 @@ class TokenObject:
                     result = requests.post(push_url, data={'push_token': data['tokenVal'], 'user_id': data['userID'],
                                                            'app_bundle_id': app_bundle_id})
                     LOGGER.info('{}登出推送结果:{}'.format(data['userID'], result.json()))
-            # if old_refresh_token:
-            #     token_qs = TokenRecord.objects.filter(refresh_token=old_refresh_token, user_id=data['userID'])
-            #     if token_qs.exists():
-            #         token_qs.update(refresh_token=refresh_token, access_token=access_token, updated_time=now_time)
-            #     else:
-            #         TokenRecord.objects.create(access_token=access_token, refresh_token=refresh_token, data=data,
-            #                                    created_time=now_time, updated_time=now_time, user_id=data['userID'])
-            # else:
-            #     TokenRecord.objects.create(access_token=access_token, refresh_token=refresh_token, data=data,
-            #                                created_time=now_time, updated_time=now_time, user_id=data['userID'])
+            logger.info(
+                '用户登录信息, data:{}, access_token:{}, refresh_token:{}'.format(data, access_token, refresh_token))
         except Exception as e:
             self.code = 309
-            # if old_refresh_token:
-            #     TokenRecord.objects.filter(refresh_token=old_refresh_token, user_id=data['userID']).update(
-            #         code=self.code, error_info=e, update_time=now_time)
+            logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             print(repr(e))
         else:
             self.code = 0
@@ -182,18 +173,14 @@ class TokenObject:
             print('过期')
             print(repr(e))
             self.code = 309
-            # self.update_token(repr(e))
+            logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
         except Exception as e:
             self.code = 309
-            # self.update_token(repr(e))
+            logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             print(repr(e))
         else:
             self.userID = res.get('userID', None)
             self.user = res.get('user', '')
             self.lang = res.get('lang', None)
-            refreshRes = self.generate(self.token, data=res)
+            refreshRes = self.generate(data=res)
             return refreshRes
-
-    def update_token(self, e):
-        TokenRecord.objects.filter(access_token=self.token).update(code=self.code, error_info=e,
-                                                                   updated_time=int(time.time()))