JWT Token #
- header:也就是头部信息,是描述这个 token 的基本信息,json 格式
- payload:载荷,也是一个 JSON 对象,用来存放实际需要传递的数据。不建议存放敏感信息,比如密码。
- Signature 签名 是对前两部分的签名,防止数据被篡改。 需要指定一个密钥。这个密钥只有服务器才知道,不能泄露。使用 Header 里面指定的签名算法,按照公式产生签名。
算出签名后,把 Header、Payload、Signature 三个部分拼成的一个字符串,每个部分之间用 . 分隔。这样就生成了一个 token
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6ODIsImtleSI6ImQxNWJjYWE0LTM0NmItNDNjNC05MzRmLTMxNDE4MTlmYjY1MSIsInVzZXJuYW1lIjoiMWlwenZjIn0.c_kLn1OMkPYlZsTfMHGqQXVmApCMBV4ZjwCfC911H38
refresh token #
refresh token是OAuth2 认证中的一个概念,和OAuth2 的access token 一起生成,表示更新令牌,过期所需时间比access toen 要长,可以用来获取下一次的access token。
如果JWT 需要添加 refresh token支持,refresh token需要满足的条件有一下几项:
- 和JWT一起生成返回给客户端
- 有实效时间,有效时间比JWT要长
- 只能用来换取下一次JWT,不能用于访问认证
- 不能重复使用(可选)
https://www.ruanyifeng.com/blog/2019/04/github-oauth.html
https://www.cnblogs.com/smileZAZ/p/17350349.html
https://juejin.cn/post/7035797194808492069