python中封装token问题

作者:xiaodong_blogs 时间:2022-09-29 01:09:32 

python 封装token

import datetime

class MyJwt:

def __init__(self):
       # 加密密钥
       self.password = "1231231241234refd"

# 加密方法
   def encode_jwt(self,userinfo):

# 加密操作
       encode_srt = jwt.encode(userinfo,self.password,algorithm="HS256")

try:
           encode_srt = str(encode_srt,"utf-8")
       except Exception as e:
           pass
       return encode_srt

# 时常加密
   # userinfo :用户信息
   # mytime: 设置过期时间
   def encode_jwt_t(self,userinfo,mytime):
       playload = {
           'exp': int((datetime.datetime.now()+datetime.timedelta(seconds=mytime)).timestamp()),
           'data':userinfo
       }
       # 加密操作
       encode_srt = jwt.encode(playload,self.password, algorithm="HS256")

try:
           encode_srt = str(encode_srt, "utf-8")
       except Exception as e:
           pass
       return encode_srt

# 解密
   def decode_jwt(self,jwt_str):
       return jwt.decode(jwt_str,self.password,algorithms=['HS256'])

如何封装token,直接调用

import jwt
import time

class JwtTool:
   #生成token
   def create_token(self, payload, ex):
       a = "sss"
       payload['ex'] = int(time.time()) + ex
       try:
           token = jwt.encode(payload, key=a)
           print("生成token成功", token)
           return token
       except Exception as e:
           print("生成token的错误", e)
           return False
   #解析token
   def check_token(self, token):
       try:
           a = "sss"
           payload = jwt.decode(token, key=a, algorithms="HS256")
           print("解析token成功", payload)
           return payload
       except Exception as e:
           print("解析token错误", e)
           return False

#单独文件测试
if __name__ == '__main__':
   from app import app

with app.app_context():
       j = JwtTool()
       payload = {
           "ia": 1,
           "name": "小米"
       }
       token = j.create_token(payload, 200)
       print("-----", token)
       # token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYSI6MSwibmFtZSI6Ilx1NWMwZlx1N2M3MyJ9.ru9-3H7Z9abbkKXkZMbekeAEdlE-COw9CASYMxIG728"
       # print("++++",j.check_token(token))

来源:https://blog.csdn.net/weixin_55555564/article/details/121348404

标签:python,封装,token
0
投稿

猜你喜欢

  • Django admin组件的使用

    2021-05-20 06:03:08
  • Django模型中字段属性choice使用说明

    2022-06-23 16:28:20
  • 10个简化PHP开发的工具

    2023-07-14 18:02:05
  • 思考关于搜索框的设计

    2008-12-09 18:17:00
  • Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的

    2021-10-23 19:00:50
  • 详解MySQL数据库中Show命令的用法

    2008-11-27 16:04:00
  • 如何在事件代理中正确使用 focus 和 blur 事件

    2010-01-30 12:51:00
  • Python文件和流(实例讲解)

    2023-08-02 19:11:45
  • 解决django model修改添加字段报错的问题

    2021-06-18 12:06:38
  • python去掉字符串中重复字符的方法

    2022-11-23 09:17:35
  • Python采集图片数据的实现示例

    2023-03-06 05:53:17
  • 详解vue-router2.0动态路由获取参数

    2024-04-09 10:49:42
  • Python利用Beautiful Soup模块搜索内容详解

    2023-10-24 15:53:43
  • 浅谈python连续赋值可能引发的错误

    2023-07-12 04:13:32
  • Python 文件数据读写的具体实现

    2023-07-08 12:15:06
  • python+Matplotlib 绘制带置信区间的折线图

    2022-04-29 06:23:40
  • Python常见数据类型转换操作示例

    2022-11-20 19:13:05
  • Python详解argparse参数模块之命令行参数

    2021-06-20 21:16:18
  • python可以用哪些数据库

    2024-01-19 11:43:51
  • vue使用swiper实现中间大两边小的轮播图效果

    2024-06-05 09:20:25
  • asp之家 网络编程 m.aspxhome.com