JWT解析

JSON Web Token解析与验证

注册 Claims(RFC 7519 标准定义)
字段全称类型说明
issIssuerString签发该JWT的主体
subSubjectStringJWT的主体(通常是用户ID)
audAudienceString/Array该JWT的预期接收者
expExpiration TimeNumericDate过期时间(Unix时间戳,秒)
nbfNot BeforeNumericDateJWT在此时间之前不可用
iatIssued AtNumericDateJWT的签发时间
jtiJWT IDStringJWT的唯一标识符,防止重放攻击
公开 Claims(IANA 维护)
字段全称说明
nameFull Name用户全名
emailEmail邮箱地址
email_verifiedEmail Verified邮箱是否已验证
phone_numberPhone Number电话号码
addressAddress地址对象(含street/city/...)
localeLocale语言区域代码
updated_atUpdated At信息最后更新时间
私有 Claims(自定义声明)
字段说明
role用户角色,如 admin / editor / viewer
permission权限标识,如 read / write / delete
org_id组织/租户ID,多租户系统中常用
scopes权限范围列表

JWT 是什么

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输信息。它是一个紧凑的、URL安全的字符串,由三段 Base64Url 编码的文本通过 . 连接组成。

三段式结构

Header.Payload.Signature
  • Header:包含签名算法(alg)和Token类型(typ
  • Payload:包含实际传输的数据(Claims),如用户信息、权限、过期时间等
  • Signature:对 Header + Payload 的签名,用于验证数据未被篡改

工作流程

  • 1. 签发:服务端使用密钥对 Header.Payload 进行签名,生成完整 JWT
  • 2. 存储:客户端收到 JWT 后存储在 localStorage / Cookie / 内存中
  • 3. 携带:客户端在后续请求的 Authorization: Bearer <token> 头中携带
  • 4. 验证:服务端验证签名有效性和 exp 等时间字段

安全注意事项

  • 不存储敏感信息:Payload 只是 Base64 编码,任何人都能解码
  • 使用 HTTPS:防止 Token 在传输中被截获
  • 选择安全的算法:推荐 HS256 / RS256,避免使用 none 算法
  • 设置合理的有效期:Access Token 建议 15-30 分钟
  • Token 撤销:JWT 本身无法撤销,需要配合黑名单或短有效期策略

声明:本站收录的第三方站点,版权、所有权均归目标站点所有,服务均由第三方站点直接提供,请使用者自行斟酌,本站不承担任何责任。

Copyright © 2021-2026 程序员宝盒 版权所有

鄂ICP备19026530号-3