Quellcode durchsuchen

解决token obj字符串不能解码问题

locky vor 2 Jahren
Ursprung
Commit
87dc231463
2 geänderte Dateien mit 16 neuen und 38 gelöschten Zeilen
  1. 2 1
      Controller/UserExController.py
  2. 14 37
      Object/TokenObject.py

+ 2 - 1
Controller/UserExController.py

@@ -21,8 +21,9 @@ from django.views.generic.base import View
 import datetime, simplejson as json
 from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY
 from Model.models import Device_Info, Role, UserExModel, Device_User
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
-from Object.TokenObject import TokenObject, RedisObject
+from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
 from Service.ModelService import ModelService
 class UserExView(View):

+ 14 - 37
Object/TokenObject.py

@@ -1,20 +1,7 @@
-#!/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
-"""
+import jwt
+import time
 from Ansjer.config import OAUTH_ACCESS_TOKEN_SECRET, OAUTH_REFRESH_TOKEN_SECRET, OAUTH_ACCESS_TOKEN_TIME, \
     OAUTH_REFRESH_TOKEN_TIME
-import jwt, time
-from Object.RedisObject import RedisObject
 
 
 class TokenObject:
@@ -29,7 +16,6 @@ class TokenObject:
         self.userID = None
         self.user = ''
         self.code = 0
-        # 令牌校验
         self.valid()
         self.returntpye = returntpye
 
@@ -38,10 +24,9 @@ class TokenObject:
             self.code = 309
             return
         try:
-            self.token= self.token.replace("Bearer ", "")
+            self.token = self.token.replace("Bearer ", "")
 
             res = jwt.decode(self.token, OAUTH_ACCESS_TOKEN_SECRET, algorithms='HS256')
-            # print(res)
             self.userID = res.get('userID', None)
             self.lang = res.get('lang', None)
             self.user = res.get('user', '')
@@ -52,8 +37,6 @@ class TokenObject:
             #     redisObj.set_data(key=self.userID, val=self.user, expire=300)
 
         except jwt.ExpiredSignatureError as e:
-            print('过期')
-            print(repr(e))
             self.code = 309
             return
         except Exception as e:
@@ -70,8 +53,10 @@ class TokenObject:
                 else:
                     self.code = 309
                     return
-    # token加密
-    def generate(self, data={}):
+
+    def generate(self, data=None):
+        if data is None:
+            data = {}
         try:
             access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
             refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
@@ -89,18 +74,18 @@ class TokenObject:
                 algorithm='HS256')
 
             res = {
-                'access_token': access_token.decode('utf-8'),
+                'access_token': access_token,
                 'access_expire': access_expire,
                 'refresh_expire': refresh_expire,
-                'refresh_token': refresh_token.decode('utf-8'),
+                'refresh_token': refresh_token,
             }
 
             if self.returntpye=='pc':
                 res = {
-                    'token': access_token.decode('utf-8'),
+                    'token': access_token,
                     'access_expire': access_expire,
                     'refresh_expire': refresh_expire,
-                    'refresh_token': refresh_token.decode('utf-8'),
+                    'refresh_token': refresh_token,
                 }
 
         except Exception as e:
@@ -110,7 +95,9 @@ class TokenObject:
             self.code = 0
             return res
 
-    def encryption(self, data={}):
+    def encryption(self, data=None):
+        if data is None:
+            data = {}
         try:
             access_expire = int(OAUTH_ACCESS_TOKEN_TIME.total_seconds())
             refresh_expire = int(OAUTH_REFRESH_TOKEN_TIME.total_seconds())
@@ -126,9 +113,6 @@ class TokenObject:
         except Exception as e:
             self.code = 309
             print(repr(e))
-        else:
-            self.code = 0
-            return res
 
     def refresh(self):
         if not self.token:
@@ -152,10 +136,3 @@ class TokenObject:
             self.user = user
             refreshRes = self.generate(data={'userID': userID, 'lang': lang, 'user': user})
             return refreshRes
-
-# import jwt
-#
-#
-# token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySUQiOiIxNTMzODg0NDE4NTE5MTM4MDAxMzgwMDAiLCJleHAiOjE1NTU1NTEwNjUsInVzZXIiOiIxMTFAcXEuY29tIiwibGFuZyI6ImVuIn0.waPlfIBucSA7rFfnsxOKIVJ_cL6xiP33cAiz1IDoteY'
-# res = jwt.decode(token, 'a+jbgnw%@1%zy^=@dn62%', algorithms='HS256')
-# print(res)