| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- #!/usr/bin/env python3  
 
- # -*- coding: utf-8 -*-  
 
- """
 
- @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
 
- @AUTHOR: ASJRD018
 
- @NAME: AnsjerOA
 
- @software: PyCharm
 
- @DATE: 2018/8/13 15:36
 
- @Version: python3.6
 
- @MODIFY DECORD:ansjer dev
 
- @file: TokenObject.py
 
- @Contact: chanjunkai@163.com
 
- """
 
- 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
 
- class TokenObject:
 
-     def __init__(self, token=None):
 
-         if token == 'local':
 
-             token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySUQiOiIxNTQzOTA5MDUwNDEzMTM4MDAxMzgwMDAiLCJsYW5nIjoiZW4iLCJleHAiOjE1NDU0NjUxMzZ9.C5U18mAeu1GNGerb_6YnJayNm_LxuikqigXl2HzdMqI'
 
-         if token == 'test':
 
-             token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsYW5nIjoiZW4iLCJleHAiOjE1NDUwOTQ0MDgsInVzZXJJRCI6IjE1MTU2NDI2MjMzNzkzOTUxMzgwMDEzODAwMSJ9.d7guVGZy7oFh5_Ri5kfeK-C7hNtKTqBlxMrWPR7nnaE'
 
-         self.token = token
 
-         self.code = 0
 
-         self.lang = None
 
-         self.userID = None
 
-     def valid(self):
 
-         if self.token is None:
 
-             self.code = 309
 
-             return
 
-         try:
 
-             res = jwt.decode(self.token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
 
-             self.userID = res.get('userID', None)
 
-             self.lang = res.get('lang', None)
 
-             # 刷新登录时间
 
-             device_user = Device_User.objects.get(userID=self.userID)
 
-             device_user.online = True
 
-             device_user.save()
 
-         except jwt.ExpiredSignatureError as e:
 
-             print('过期')
 
-             print(repr(e))
 
-             self.code = 309
 
-         except Exception as e:
 
-             self.code = 309
 
-         else:
 
-             return res
 
-     def generate(self, data={}):
 
-         try:
 
-             access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
 
-             refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
 
-             now_stamp = int(time.time())
 
-             access_data = data
 
-             refresh_data = data
 
-             access_data['exp'] = access_expire + now_stamp
 
-             refresh_data['exp'] = refresh_expire + now_stamp
 
-             access_token = jwt.encode(access_data,
 
-                                       OAUTH_ACCESS_TOKEN_SECRET,
 
-                                       algorithm='HS256')
 
-             refresh_token = jwt.encode(
 
-                 refresh_data,
 
-                 OAUTH_REFRESH_TOKEN_SECRET,
 
-                 algorithm='HS256')
 
-             res = {
 
-                 'access_token': access_token.decode('utf-8'),
 
-                 'access_expire': access_expire,
 
-                 'refresh_expire': refresh_expire,
 
-                 'refresh_token': refresh_token.decode('utf-8'),
 
-             }
 
-         except Exception as e:
 
-             self.code = 309
 
-             print(repr(e))
 
-         else:
 
-             return res
 
-     def refresh(self):
 
-         try:
 
-             res = jwt.decode(self.token, OAUTH_REFRESH_TOKEN_SECRET, algorithms='HS256')
 
-         except jwt.ExpiredSignatureError as e:
 
-             print('过期')
 
-             print(repr(e))
 
-             self.code = 309
 
-         except Exception as e:
 
-             self.code = 309
 
-             print(repr(e))
 
-         else:
 
-             userID = res['userID']
 
-             lang = res['lang']
 
-             refreshRes = self.generate(data={'userID': userID, 'lang': lang})
 
-             return refreshRes
 
 
  |