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

Python使用JWT的超详细教程

使用JWT的超详细教程

更新的时间是, 二零二四年, 十月十七日, 十一点三十四分零二秒, 作者是, 黄小耶@。

围绕使用 JWT 的相关资料, 这篇文章予以了主要介绍, JWT 即 JSON Web , 它属于一种网络应用间传输信息的标准, 其涵盖三部分, 分别是(头部)、(负载)、(签名), 头部含有声明类型和算法, 有需要的朋友能够参考一下。

一、JWT的介绍

有着简洁特性、URL安全特点的令牌标准JWT(JSON Web)是用于在网络应用环境之间安全传输信息的, JWT的声明常被用于在身份提供者与服务提供者之间传递被认证过的用户各种身份对应信息来以便获得到从资源服务器的资源, 同样呢还能够添加进去额外的是其它业务逻辑需要的声明相关信息, 该token既能够直接用于认证, 又能够被加密处理。

二、JWT的组成

JWT的结构分成三部分组成, 其是借由点予以分割的, 就是(头部), 还有(负载), 以及(签名)。如同下面这张图所示。

1、(头部)

头部一般涵盖着两部分内容, 一部分是声明类型, 另一部分是使用何种算法, 其中第一部分是把json变成字符串, 再进行加密, 有如下面这种格式。

{ "alg":"HS256", "type":"jwt" }

2、(负载)

负荷当中一般而言便是我们所说的要传予前端的数值, 像用户的某些信息呀, 同样是把json转变为字符串, 之后进行加密, 呈现出如下的格式。

{ "id":"123", "username":"xiaoming" }

3、(签名)

签名有着保证JWT未曾被篡改的作用, 签名的生成方式是, 要把编码后的头部、编码后的负载、秘密依据指定算法来进行签名, 签名又能保证JWT的发送者无法抵赖自身发送的消息, 接收者可验证消息完整性呢,此处是把前两部分的密文拼接起来, 针对这两部分开展HS256加密, 接着加盐, 最后再对加密后的内容进行一次加密!

三、写JWT1、安装Jwt

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyJWT

2、使用JWT

import datetime import jwt def create_jwt(): headers = { 'alg': 'HS256', 'typ': 'JWT' } # jwt的头部,包含了类型和算法的指定 payload = { "id": 123, "username": '小明', 'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=12), } # jwt的负载,都是一些自定义值,其中exp中的内容是我们指定jwt的一个有效时间,有效时间为12个小时 token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123') # 对上面内容进行加密,这里的key就是加的盐 print(token) if __name__ == '__main__': create_jwt()

3、解密JWT

import datetime import jwt def create_jwt(): headers = { 'alg': 'HS256', 'typ': 'JWT' } # jwt的头部,包含了类型和算法的指定 payload = { "id": 123, "username": '小明', 'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=12), } # jwt的负载,都是一些自定义值,其中exp中的内容是我们指定jwt的一个有效时间,有效时间为12个小时 token = jwt.encode(headers=headers, payload=payload, algorithm='HS256', key='123') # 对上面内容进行加密,这里的key就是加的盐,是自定义的,我们在使用盐的时候一般是唯一的一个值 print(token) return token def decode_JWT(token): content = jwt.decode(jwt=token, key='123', algorithms=['HS256']) # 对jwt进行解密,这里用的key必须和上面用的key一样,否则是无法解密出来的 print(content) if __name__ == '__main__': token = create_jwt() decode_JWT(token)

解密出来的结果如下图

总结

文章关于使用JWT的部分, 到此就介绍完毕了, 更多关于使用JWT的相关内容, 若想了解可搜索脚本之家以往的文章, 或者继续浏览下面的相关文章, 期望未来大家能多多支持脚本之家!

http://www.jsqmd.com/news/1364730/

相关文章:

  • Unity Utilities开源工具箱:提升开发效率的实用工具集解析
  • 2026年垂直输送机厂家怎么选?口碑优选清单+甄选指南 - geo交流
  • 2026年广东正规的高修车租赁有哪些?这份严选推荐与择优指南请收好 - geo交流
  • 同步读写Client-Server核心技术解析与优化实践
  • CTF Web实战:联合查询注入与MD5认证绕过深度解析
  • 构建可靠数据分析智能体:从NL2SQL到系统架构的工程实践
  • Elasticsearch索引管理实战与性能优化指南
  • 2026年浦东老房翻新公司哪家靠谱口碑好?这份优选指南教你择优甄选 - geo交流
  • 2026年一水乳糖经销商**甄选指南:择优推荐这几家靠谱供应商 - geo交流
  • Redis核心数据类型与生产环境配置全解析
  • 高斯定理与通量计算:从COMSOL电磁仿真到Unity能量场特效
  • React Native与鸿蒙跨平台开发中的状态管理优化
  • 2026年靠谱的HS CX4厂家优选指南:从交期到售后全面解析 - geo交流
  • CodeGraph:用代码知识图谱重构编程Agent的智能导航系统
  • 2026美国EB1A申请机构哪家好?博士科研人员与企业高管这样选更靠谱 - 环球新视野
  • 一站式信号处理平台:ZYNQ+FPGA架构的工程实践与避坑指南
  • 3步解决Windows视频播放难题:LAV Filters终极使用指南
  • 2026年焕新指南:正规的昆明到长沙物流公司热门推荐 - 海棠依旧大
  • nvm管理Node.js版本全指南与实战技巧
  • 2026年模块化配电柜源头厂家如何选择?3步优选指南助你精准甄选 - geo交流
  • 如何实现拼多多同行数据截流自动化?全自动挂机防风控,7x24小时无人值守
  • 《孤岛惊魂6》整合版安装全攻略:从原理到实战的保姆级教程
  • 2026年公寓床选购指南 了解正规厂家直销的核心优势 - 李lixpi
  • 【AI Agent】从失控到可控:Agent治理的Hook护栏机制— 5 级学习路径
  • 递归与回溯算法:核心原理与工程实践
  • 2026年实力之选:行业内无锡消防设施检测公司行业盘点 - 海棠依旧大
  • 2026年大连比较好的精密压铸加工厂怎么选?这份甄选指南教你择优避坑 - geo交流
  • 2026年湖南自建房工程门页实力厂家怎么选?这份择优指南帮你避开坑 - geo交流
  • 缓冲区溢出漏洞原理与实战利用:从内存机制到渗透测试
  • AI 第一次强到被自己人喊停:它可能自主黑入你的系统