什么是 JWT?
JWT (JSON Web Token) 是目前最流行的跨域认证解决方案,是一种基于 Token 的认证授权机制。从 JWT 的全称可以看出,JWT 本身也是 Token,一种规范化之后的 JSON 结构的 Token。
Token 自身包含了身份验证所需要的所有信息,因此,我们的服务器不需要存储 Session 信息。这显然增加了系统的可用性和伸缩性,大大减轻了服务端的压力。
可以看出,JWT 更符合设计 RESTful API 时的「Stateless(无状态)」原则 。
并且, 使用 Token 认证可以有效避免 CSRF 攻击,因为 Token 一般是存在在 localStorage 中,使用 JWT 进行身份验证的过程中是不会涉及到 Cookie 的。
我在 JWT 优缺点分析[1]这篇文章中有详细介绍到使用 JWT 做身份认证的优势和劣势。
下面是 RFC 7519[2] 对 JWT 做的较为正式的定义。
JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted. ——JSON Web Token (JWT)

JWT(JSON Web Token)是跨域认证的流行解决方案,遵循无状态原则,适用于RESTful API设计。它由Base64编码的Header、Payload和Signature三部分组成。Header包含类型和算法信息,Payload存储声明,Signature用于防止篡改。身份验证通过服务器生成的Token进行,客户端在请求中携带Token。为了安全,应避免在Payload中存储敏感信息,设置合理的过期时间,并保护好签名密钥。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



