Menu

4.5. 登录 API 获取 JWT 令牌

JWT

JWT 是 JSON Web Token 的缩写,是一个非常轻巧的规范,这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。

JWT 由头部(header)、载荷(payload)与签名(signature)组成,一个 JWT 类似下面这样:

{
    "typ":"JWT",
    "alg":"HS256"
}
{
    "iss":"http://larabbs.test",
    "iat":1515733500,
    "exp":1515737100,
    "nbf":1515733500,
    "jti":"c3U4VevxG2ZA1qhT",
    "sub":1,
    "prv":"23bd5c8949f600adb39e701c400872db7a5976f7"
}
signature
  • 头部申明了加密算法;
  • 载荷中有两个比较重要的数据,exp 是过期时间,sub 是 JWT 的主体,这里就是用户的 id;
  • 最后的 signature 是由服务器进行的签名,保证了 token 不被篡改。

JWT 最后是通过 Base64 编码的,也就是说,它可以被翻译回原来的样子来的。所以不要在 JWT 中存放一些敏感信息。

用户 id,过期时间等数据都保存在 Token 中了,所以并不需要将 Token 保存在服...

本文章首发在 Laravel China 社区

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
讨论数量: 24

wangjiu
$this->response 是什么意思?
1 个点赞 | 10 个回复 | 问答
遗忘的影子
结尾多一个分号?
1 个点赞 | 4 个回复 | 问答
jehaz007
jwt 刷新 token 方案怎么解决?
0 个点赞 | 2 个回复 | 问答
Pepsi丶
请问有人遇到过这个问题吗?
0 个点赞 | 2 个回复 | 问答
heart_5653
如何查看源码?
0 个点赞 | 1 个回复 | 问答
QiyueShiyi
用户能互踢吗?
0 个点赞 | 1 个回复 | 问答
Stone007
5.6.21 安装 JWT 报错了?
0 个点赞 | 1 个回复 | 问答
HugBoomsj
求助 Token has expired?
0 个点赞 | 2 个回复 | 问答
Yang
过期时间为什么要设置成 TTL * 60 ?
0 个点赞 | 2 个回复 | 问答
阿IT哟
jwt 过了刷新时间要怎么处理?
0 个点赞 | 1 个回复 | 问答
江渚之上
刷新和删除 token 报错?
0 个点赞 | 7 个回复 | 问答
山海王子
请问 token 的验证原理是什么呢?
0 个点赞 | 4 个回复 | 问答
刻意练习,每日精进。
19
点赞
6073
浏览
24
讨论
贡献者