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 网站上。

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

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
贡献者:5
讨论数量: 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