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

JSON Web Token
缩写 (JWT),以加密后的JSON对象传输信息
应用场景
- 授权登录(SSO)
- 信息交换
构成
包含三部分,以.
分割
- 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 套常见的互联网系统】系列文章,让大家可以真实感受到低代码快速落地项目的可行性