全栈项目|小书架|服务器开发-JWT 详解
官方简介:Introduction to JSON Web Tokens
文章基本是官网内容的翻译,英文不错的同学可点击上面的链接直接看英文文档。
什么是 JWT#
JWT
全称是JSON Web Token(JWT)
是一个开放标准(RFC 7519)
,它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON
对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。
可以使用密钥(HMAC算法
)或使用RSA
或ECDSA
的公用/专用密钥对对JWT
进行签名。
什么时候使用 JWT 验证#
- 授权
(Authorization)
这是使用JWT
的最常见情况。一旦用户登录,每个后续请求将包括JWT
,从而允许用户访问该令牌允许的路由,服务和资源。单一登录是当今广泛使用JWT
的一项功能,因为它的开销很小并且可以在不同的域中轻松使用。 - 信息交换
(Information Exchange)
JWT
是在各方之间安全地传输信息的好方法。因为可以对JWT
进行签名(例如,使用公钥/私钥对),所以您可以确保发件人是他们所说的人。另外,由于签名是使用Header
和payload
计算的,因此您还可以验证内容是否未被篡改。
JWT 的结构格式#
由三部分组成,这些部分由点.
分隔,分别是:
Header
Payload
Signature
因此,JWT
通常如下所示。
xxxxx.yyyyy.zzzzz
Header#
通常由两部分组成:
例如: