当前位置: 首页 > news >正文

python,自定义token生成

1、使用的包PyJWT来实现token生成

安装:pip install PyJWT==2.8.0

2、使用例子:

import jwt
import time'''
pip install pyJWT==2.8.0
'''SECRET_KEY = '%^ES*E&Ryurehuie9*7^%$#$EDFGHUYTRE#$%^&%$#@#$RTYGHIK'
DEFAULT_EXP = 7 * 24 * 60def create_token(user_id: int, timeout=None):''':param user_id: 传递用户的id:param timeout: token有效时间,默认是一天:return:'''if timeout == None:# 没有指定过期时间,就使用配置的时间戳timeout = DEFAULT_EXPelif type(timeout) != int:# 传递的类型有误,使用配置中的时间戳timeout = DEFAULT_EXP# 构造headerheaders = {'type': 'jwt','alg': 'HS256'}# 缓存数据payload = {'user_id': user_id,'exp': time.time() + timeout}token = jwt.encode(payload=payload, key=SECRET_KEY, algorithm="HS256", headers=headers)if isinstance(token, bytes):token = token.decode('utf-8')return token# 给websocket发起连接时,验证token
def decode_token(token: str):# 加密用的盐try:payload = jwt.decode(token, SECRET_KEY, algorithms=['HS256'])return (payload.get('user_id'), payload.get('exp'))except jwt.ExpiredSignatureError:return Noneif __name__ == '__main__':token = create_token(1)print(token)ret = decode_token(token)print(ret)

3、在脚本中也可以使用

http://www.lryc.cn/news/376756.html

相关文章:

  • 小米SU7遇冷,下一代全新车型被官方意外曝光
  • JavaScript 函数与事件
  • Qt 焦点系统关键点总结
  • SpringBoot+Maven项目的配置构建
  • c#调用c++dll方法
  • ACM算法学习路线、清单
  • sqoop的安装配置
  • 代码随想录算法训练营第六十四天 | 图论理论基础、深搜理论基础、广搜理论基础、98. 所有可达路径
  • 【教师资格证考试综合素质——法律专项】教师法笔记以及练习题
  • 图卷积网络(Graph Convolutional Network, GCN)
  • 【diffusers 极速入门(一)】pipeline 实际调用的是什么? __call__ 方法!
  • 【DPDK学习路径】二、DPDK简介
  • python基础 002 - 2 常用数据类型
  • 爆赞!GitHub首本Python开发实战背记手册,标星果然百万名不虚传
  • Spring源码-xxxAware实现类和BeanPostProcessor接口调用过程
  • Uni-app x
  • Python 基础:文件
  • WebForms 母版页
  • Java应用打包成Docker镜像
  • 什么是自动驾驶中的CopyCat?
  • 为什么没人详细说过智能猫砂盆?最受欢迎的好用智能猫砂盆解析!
  • AI视频智能监管赋能城市管理:打造安全有序的城市环境
  • 多态性(Java)
  • 国际期货行情相关术语
  • LeetCode20.有效的括号
  • 尚玩助手广告变现app开发
  • Anti-human IL-10 mAb (12G8), biotin:Mabtech热销品
  • 【植物大战僵尸杂交版】致敬传奇游戏玩家——一个普通人的六年坚持
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 部门组队编程(200分) - 三语言AC题解(Python/Java/Cpp)
  • 民生银行信用卡中心金融科技24届春招面经