4.5. 登录 API 获取 JWT 令牌

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

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...

本文章首发在 LearnKu.com 网站上。

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

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
贡献者:7
讨论数量: 7

jehaz007
jwt 刷新 token 具体方案,见答案
17 个点赞 | 32 个回复 | 问答 | 课程版本 5.5
holashatu
Auth::guard ('API')->attempt ($credentials)) 到底是什么?
9 个点赞 | 11 个回复 | 问答 | 课程版本 5.5
wangjiu
刷新 token 之后,旧的 token 会立即失效,应该如何解决?
3 个点赞 | 17 个回复 | 问答 | 课程版本 5.5
arfurs
dingo/API 的 api.auth 中间件对于不同用户表认证问题
3 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
qujsh
jwt 刷新过期了的问题
2 个点赞 | 8 个回复 | 问答 | 课程版本 5.7
AmberLavigne
JWT 如何被恶意劫持了怎么办?会出现这种情况吗?
2 个点赞 | 8 个回复 | 问答 | 课程版本 5.5
szlwl01
token 原理是什么?
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5