参考 https://laravelacademy.org/post/9469.html
三部分组成,头部、载荷与签名
头部 把下面的基本信息base64 加密生成头部信息
{
"typ": "JWT",
"alg": "md5"
}
载荷 把下面的基本信息base64 加密生成载荷
{
签名 头部.载荷 使用
"sub": "1", //该 JWT 的签发者
"iss": "http://host/group/invite",
"iat": 1451888119, //在什么时候签发的 token
"exp": 1454516119, //token 什么时候过期
"nbf": 1451888119, //token 在此时间之前不能被接收处理
"jti": "37c107e4609ddbcc9c096ea5ee76c667", //token 在此时间之前不能被接收处理
"group_id": 1,
"invite_user": "A"
}.
进行拼接(头部在前), 得到用于签名的字符串,然后使用签名方法对用于签名的字符串进行签名.
最后把用于签名的字符串和签名使用.
进行拼接(签名在后), 即可得到 一个完整的token
。但是,此时的token
没有带上签发者特有的标志,是可以被伪造的,至于如何解决这个问题我们下面 jwt 具体实现会讲。