JWT要点备忘录

server/2025/3/11 6:04:14/

自我简介:4年导游,10年程序员,最近6年一直深耕低代码领域,分享低代码和AI领域见解。

在这里插入图片描述

JSON Web Token 缩写 (JWT),以加密后的JSON对象传输信息

应用场景
  1. 授权登录(SSO)
  2. 信息交换
构成

包含三部分,以.分割

  • Header(头部)
  • Payload(负载)
  • Signature(签名)

常见形式:xxxxxx.yyyyyy.zzzzzz

实例

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ

Header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Payload: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

Signature: cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ

字符串通过Base64解码后得到如下信息:(所以隐秘信息不能放在这里!)

Header

{"alg": "HS256", // 加密算法"typ": "JWT"    // token 类型
}

Payload

{"sub": "1234567890","name": "John Doe","iat": 1516239022
}JWT规定了7个官方字段供选用iss (issuer) : 签发人 
exp (expiration time) : 过期时间 
sub (subject) : 主题 
aud (audience) : 受众 
nbf (Not Before) : 生效时间 
iat (Issued At) : 签发时间 
jti (JWT ID) : 编号开发者也可以自己指定字段和内容

Signature

HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret
)通过签名算法 HMACSHA256(Header里指定) 得到的签名字符串:cThIIoDvwdueQB468K5xDc5633seEFoqwxjF_xSJyQQ其中:secret 密钥由服务器指定,不能泄漏给用户
传输途径

Http 请求头配置 Authorization

Authorization: Bearer <token>

服务端获取token后可以 通过 srcret 验签比对,防止篡改

编解码示例图

在这里插入图片描述

学习地址

AI时代,对各行业的冲击力只会越来越大,随着AI大模型的竞赛,越来越多强悍的AI模型都会涌现,像软件开发行业的很多工作都会被取代。软件将不再是程序员的专属产物,会由AI创建很多的软件产品。

4年导游,10年程序员,深耕低代码领域6年,持续分享低代码和AI领域领域有价值的思考和沉淀,欢迎关注:winyh5

后续会推出:【挑战365天做 100 套常见的互联网系统】系列文章,让大家可以真实感受到低代码快速落地项目的可行性


http://www.ppmy.cn/server/174113.html

相关文章

USB2.0 学习(1)字段和包

目录 1 字段 1.1 包识别字段PID 1.2 地址字段 1.3帧号字段 1.4 数据字段 1.5 CRC字段 2 包 2.1令牌包 2.2帧起始包 2.3数据包 2.4SPLIT包(分割事务包) 2.5握手包 参考 USB包的构成是一个逐层的过程,首先这些串行数据按照特定的规则构成字段,字段是构成包的基本…

常见webshell流量特征---菜刀/蚁剑/冰蝎/哥斯拉

前言 识别常见Webshell流量的特征&#xff0c;可帮助我们识别攻击者采取何种webshell工具&#xff0c;以及上传了什么类型的webshell&#xff0c;以下是一些常见的webshell流量特征。 中国菜刀 中国菜刀简介 菜刀主流版本主要是2011版、2014版、2016版。从2011版本到2014版…

Deepseek可以通过多种方式帮助CAD加速工作

自动化操作&#xff1a;通过Deepseek的AI能力&#xff0c;可以编写脚本来自动化重复性任务。例如&#xff0c;使用Python脚本调用Deepseek API&#xff0c;在CAD中实现自动化操作。 插件开发&#xff1a;结合Deepseek进行二次开发&#xff0c;可以创建自定义的CAD插件。例如&a…

ESP8266UDP透传

1. 配置 WiFi 模式 ATCWMODE3 // softAPstation mode 响应 : OK 2. PC 连⼊入 ESP8266 softAP 就是连接wifi 3.查询ESP8266设备的IP地址 ATCIFSR 响应: CIFSR: APIP, "192.168.4.1" CIFSR: APMAC, "1a: fe: 34: a5:8d: c6" CIFSR: STAIP, "192.…

Python之PyQt5基础生成前端窗口

PyQt5之生成前端窗口 目录 PyQt5之生成前端窗口1 PyQt51.1 概念1.2 PyQt5 的特点1.3 安装1.4 Qt Designer 设计界面 2 Qt Designer 设计界面介绍2.1 创建2.2 常用框介绍2.3 常用设置介绍2.4 信号槽连接函数 3 代码显示桌面 1 PyQt5 1.1 概念 PyQt5 是一个用于创建图形用户界面…

python办公自动化笔记

一、对文件操作 open() 这是python中内置的打开和创建文件的函数。 第一个参数是文件的路径&#xff0c;第二个参数是模式&#xff0c;默认是 “r”&#xff0c;表示读模式。 “w” 表示写模式 “a” 表示追加模式 “b” 模式表示这是二进制文件&#xff08;如图片、.exe文件…

slf4j和log4j的区别与使用

slf4j和log4j的区别与使用 文章目录 1.简介2.使用教程3.常见报错解决&#xff08;持续更新&#xff09; 1.简介 官网&#xff1a;https://www.slf4j.org/manual.html (1)简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口。 (…

repo访问gerrit.googlesource失败

编译openharmony的时候&#xff0c;repo阶段碰到一个问题&#xff0c;建议不要通过 apt install安装&#xff0c;里面的源来自google curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/repo chmod 755 ~/repo 执行类似这样的操作 repo init -u gitgitee.com:…