JWT 简单介绍

发布于 2023-05-04 19:26:49 字数 1239 浏览 51 评论 0

JWT(JSON Web Token)是一种用于身份验证和授权的开放标准(RFC 7519),它是一种安全的、轻量级的身份验证方式。

JWT由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。

头部(Header):JWT 的头部通常由两部分信息组成:令牌的类型(即JWT)和所使用的签名算法,例如:


{
  "alg": "HS256",
  "typ": "JWT"
}

载荷(Payload):JWT的载荷包含了一些声明(Claim),用于描述用户信息、权限、过期时间等等,例如:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

签名(Signature):JWT的签名由头部和载荷组成,并使用密钥进行加密生成,例如:


HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

JWT 的使用流程如下:

  1. 用户使用用户名和密码进行登录,服务器验证用户信息是否正确。
  2. 服务器生成一个JWT,将用户信息、权限等信息写入载荷中,并使用密钥对头部和载荷进行签名。
  3. 服务器将生成的JWT返回给客户端,客户端将其存储在本地,通常是在浏览器的cookie或本地存储中。
  4. 客户端在后续的请求中,将JWT作为请求头部或请求参数传递给服务器。
  5. 服务器收到请求后,验证JWT的签名是否正确,如果正确则解析出用户信息、权限等信息,进行后续操作。

JWT 的优点:

  1. 无状态:JWT是无状态的,服务器不需要保存任何会话信息,可以轻松扩展和分布式环境下使用。
  2. 安全:JWT通过密钥对头部和载荷进行签名,保证了数据的完整性和安全性。
  3. 跨域支持:JWT可以跨域使用,可以在不同的域名和服务器之间使用。
  4. 简单易用:JWT使用简单,易于实现和维护。

JWT 的缺点:

  1. 载荷信息不能太多:JWT的载荷信息不能太多,否则会导致JWT的长度过长,增加网络传输的负担。
  2. 安全性依赖于密钥:JWT的安全性依赖于密钥的保护,如果密钥泄露,则JWT的安全性将受到威胁。
  3. 无法撤销:一旦JWT生成后,无法撤销,除非修改密钥或者设置短期的过期时间

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

水中月

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

qq_eQNo9e

文章 0 评论 0

内心旳酸楚

文章 0 评论 0

mb_BlPo2I8v

文章 0 评论 0

alipaysp_ZRaVhH1Dn

文章 0 评论 0

alipaysp_VP2a8Q4rgx

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文