Browse Source

token记录

peng 9 months ago
parent
commit
ca2d4beb69
2 changed files with 23 additions and 0 deletions
  1. 1 0
      Model/models.py
  2. 22 0
      Object/TokenObject.py

+ 1 - 0
Model/models.py

@@ -5166,6 +5166,7 @@ class StsFrequency(models.Model):
     id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
     uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
     frequency = models.IntegerField(verbose_name='频率', default=0)
+    type = models.SmallIntegerField(default=1, verbose_name='预警类型')  # 1:sts 2:token
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updateTime = models.IntegerField(verbose_name='更新时间', default=0)
 

+ 22 - 0
Object/TokenObject.py

@@ -2,10 +2,12 @@ import logging
 import jwt
 import time
 import requests
+import datetime
 
 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, DETECT_PUSH_DOMAINS, LOGGER
+from Model.models import StsFrequency
 
 logger = logging.getLogger('token')
 
@@ -24,6 +26,9 @@ class TokenObject:
         self.code = 0
         self.valid()
         self.returntpye = returntpye
+        today = datetime.datetime.today()
+        today_date = datetime.datetime(today.year, today.month, today.day)
+        self.today_timestamp = int(today_date.timestamp())
 
     def valid(self):
         if self.token is None:
@@ -46,15 +51,18 @@ class TokenObject:
 
         except jwt.ExpiredSignatureError as e:
             self.code = 309
+            self.add_or_update_qs()
             logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             return
         except Exception as e:
             self.code = 309
+            self.add_or_update_qs()
             logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             return
         else:
             if not self.userID:
                 self.code = 309
+                self.add_or_update_qs()
                 logger.info('errMsg:{}, token:{}'.format('缺少用户ID', self.token))
                 return
             else:
@@ -129,6 +137,7 @@ class TokenObject:
                 '用户登录信息, data:{}, access_token:{}, refresh_token:{}'.format(data, access_token, refresh_token))
         except Exception as e:
             self.code = 309
+            self.add_or_update_qs()
             logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             print(repr(e))
         else:
@@ -164,9 +173,11 @@ class TokenObject:
             print('过期')
             print(repr(e))
             self.code = 309
+            self.add_or_update_qs()
             logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
         except Exception as e:
             self.code = 309
+            self.add_or_update_qs()
             logger.info('errLine:{}, errMsg:{}, token:{}'.format(e.__traceback__.tb_lineno, repr(e), self.token))
             print(repr(e))
         else:
@@ -175,3 +186,14 @@ class TokenObject:
             self.lang = res.get('lang', None)
             refreshRes = self.generate(data=res)
             return refreshRes
+
+    def add_or_update_qs(self):
+        qs = StsFrequency.objects.filter(type=2, addTime=self.today_timestamp, uid='token')
+        if qs.exists():
+            token_qs = qs[0]
+            token_qs.frequency += 1
+            token_qs.updateTime = int(time.time())
+            token_qs.save()
+        else:
+            StsFrequency.objects.create(uid='token', frequency=1, type=2, addTime=self.today_timestamp,
+                                        updateTime=int(time.time()))