Go-JWT

基本结构 Header(头部) Hedaer 部分用于描述该 JWT 的基本信息,比如其类型(通常是 JWT)以及所使用的签名算法(如 HMAC SHA256 或 RSA)。 Payload(负载) Payload 部分包含所传递的声明。声明是关于实体(通常是用户)和其他数据的语句。声明可以分为三种类型:注册声明、公共声明 和 私有声明。 注册声明 这些声明是预定义的,非必须使用的但被推荐使用。官方标准定义的注册声明有 7 个 Claim(声明) 含义 iss(Issuer) 发行者,标识 JWT 的发行者。 sub(Subject) 主题,标识 JWT 的主题,通常指用户的唯一标识 aud(Audience) 观众,标识 JWT 的接收者 exp(Expiration Time) 过期时间。标识 JWT 的过期时间,这个时间必须是将来的 nbf(Not Before) 不可用时间。在此时间之前,JWT 不应被接受处理 iat(Issued At) 发行时间,标识 JWT 的发行时间 jti(JWT ID) JWT 的唯一标识符,用于防止 JWT 被重放(即重复使用) 公共声明:可以由使用 JWT 的人自定义,但为了避免冲突,任何新定义的声明都应已在 IANA JSON Web Token Registry 中注册或者是一个公共名称,其中包含了碰撞防抗性名称(Collision-Resistant Name)。 私有声明:发行和使用 JWT 的双方共同商定的声明,区别于 注册声明 和 公共声明。 Signature(签名) 为了防止数据篡改,将头部和负载的信息进行一定算法处理,加上一个密钥,最后生成签名。如果使用的是 HMAC SHA256 算法,那么签名就是将编码后的头部、编码后的负载拼接起来,通过密钥进行 HMAC SHA256 运算后的结果。 ...

2024-09-14 · 3 分钟 · Nebula