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
投稿

猜你喜欢

  • Python os库常用操作代码汇总

    2021-04-17 04:07:51
  • JS设置cookie、读取cookie、删除cookie

    2023-08-27 19:35:17
  • 浅析php中array_map和array_walk的使用对比

    2023-09-10 22:22:28
  • Opencv实现二维直方图的计算及绘制

    2023-07-18 23:34:52
  • oracle初始化参数设置

    2010-07-31 12:47:00
  • 用Python编写分析Python程序性能的工具的教程

    2022-02-13 01:57:03
  • 文字链接,怎么办?

    2008-08-04 13:18:00
  • Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法

    2023-08-06 15:58:18
  • ASP编程中的常见问题

    2007-09-20 13:32:00
  • 目前最全的浏览器/CSS选择器兼容性总结(包括Safari 4 beta)

    2009-02-26 15:26:00
  • php日期转时间戳,指定日期转换成时间戳

    2023-06-20 17:02:23
  • 微信小程序实现富文本图片宽度自适应的方法

    2023-10-17 12:44:25
  • SQL 字母数字混合型字段 按里面的数字排序

    2010-04-23 18:18:00
  • 用ASP和XMLHTTP分析远程XML文件

    2007-12-12 12:48:00
  • 用ASP打造一个小型的网页BBS系统

    2008-10-10 16:36:00
  • 我的论坛源代码(九)

    2023-11-15 05:50:05
  • Go语言中使用反射的方法

    2023-07-22 22:31:48
  • Django分页查询并返回jsons数据(中文乱码解决方法)

    2022-12-02 22:44:20
  • ASP 字符串转数字格式

    2009-08-19 17:18:00
  • isset和empty的区别

    2023-11-20 12:24:08
  • asp之家 网络编程 m.aspxhome.com