互联网用户登录模式变迁史(三)
互联网用户登录模式变迁史(三)
JWT 是什么
JWT(JSON Web Token)是一个开放标准(RFC 7519),它是自包含的方式,用于作为 JSON 对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
JWT 长什么样
Header
由两部分组成:token 的类型(“JWT”)和算法名称(比如:HMAC SHA256 或者 RSA 等等)
Payload
它包含实体和数据的声明。声明有三种类型:
registered claims: 不是强制的,只是推荐。比如: iss(jwt 签发者),exp(jwt 的过期时间),sub(jwt 所面向的用户),aud(接收 jwt 的一方),iat(jwt 的签发时间)等。
public claims:可以随意定义。
private claims:用于在同意使用他们的各方之间共享信息,并且不是注册或公开的声明。
注:不要在 Payload 中放置敏感消息
签名(Signature)
通过下面的公式得到签名。用于验证消息在传递过程中是否被篡改,如果使用私钥的 token,还可以验证 JWT 的发送方是否为它所称的发送方。
1 | HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) |
可以到https://jwt.io/官网具体查看。
JWT 应用场景
Authorization (授权)
用户登录成功后,每次请求都会携带这个 jwt,允许用户访问这个令牌允许访问的各种资源(资源或者 url 或者服务),单点登录也很流行使用 jwt。
Information Exchange (信息交换)
因为 jwt 最后一部分是签名,可以判断 payload 中的数据是否被别人篡改。
JWT 执行流程
添加微信 | 公众号更多内容 |
---|---|
![]() |
![]() |
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!