100

JWT 解码器

什么是 JWT?

JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON对象安全地传输信息。

头部 (Header)

头部通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,如HMAC SHA256或RSA。

{
  "alg": "HS256",
  "typ": "JWT"
}

载荷 (Payload)

载荷包含声明(claims)。声明是关于实体(通常是用户)和其他数据的声明。

{
  "sub": "1234567890",
  "name": "张三",
  "iat": 1516239022,
  "exp": 1716239022
}

签名 (Signature)

签名用于验证消息在传输过程中没有被更改,并且对于使用私钥进行签名的令牌,它还可以验证JWT的发送方是否为它所声称的发送方。

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

常见声明

iss (Issuer)

令牌的发行者

sub (Subject)

令牌的主题

aud (Audience)

令牌的接收者

exp (Expiration Time)

令牌的过期时间

nbf (Not Before)

令牌生效的时间

iat (Issued At)

令牌的发行时间

jti (JWT ID)

令牌的唯一标识符

使用场景

  • 授权:这是使用JWT的最常见场景。一旦用户登录,每个后续请求将包括JWT,允许用户访问该令牌允许的路由、服务和资源。
  • 信息交换:JWT是在各方之间安全传输信息的好方法,因为JWT可以被签名,所以你可以确定发送者是他们所说的人。

安全注意事项

  • 不要在JWT的载荷中存储敏感信息,因为它可以被解码。
  • 使用HTTPS来防止中间人攻击。
  • 设置合理的过期时间。
  • 使用强密钥来签名你的JWT。