前言
JWT
jwt-gogithub.com/golang-jwt/jwt/v4
v3v4
1.什么是JWT
JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
2.JWT的数据结构
JWT
.JWT
HeaderPayloadSignature
Header.Payload.Signature
2.1 Header
HeaderJSONJWT
algalgorithmHMAC SHA256HS256typtokentypeJWTJWT
JSONBase64URLHeader
2.2 Payload
PayloadJSONJWT
iss (issuer)exp (expiration time)sub (subject)aud (audience)nbf (Not Before)iat (Issued At)jti (JWT ID)
我们还可以在这个部分自己定义字段,下面就是一个例子
JWT
JSONBase64URL
2.3 Signature
Signature
secretHeaderHMAC SHA256
2.4 Base64URL
HeaderPayloadBase64URLBase64
JWTtokenURLBase64URLBase64URL
HeaderPayloadSignature
3使用JWT
安装
生成Token
claimsserect
token
token
参考: