JWT简介

JWT,全称为Json Web Token(JSON网络令牌),是一个用于在网络应用间安全传递声明的开放标准(RFC 7519),可以通过在身份验证和授权过程中添加额外的信息,以确保数据的完整性和安全性。

JWT通常用于客户端和服务器之间的身份验证,它提供了一个简单、安全、开放的方式来表示声明,同时也可以验证请求的发送方是否合法。 这主要是因为 JWT 可以被签名 (signed),同时也可以加密 (encrypted),因此只有持有正确密钥的人才能读取、理解以及使用这些数据。

JWT 包含三部分:头部(header)、载荷(payload)和签名(signature),格式如下:

```

xxxxx.yyyyy.zzzzz

```

- 头部:包含了加密算法以及其他的元数据;

- 载荷:包含了所传递的信息,比如说用户的 ID,过期时间等等;

- 签名:使用双方约定的密钥对前面两部分加密而生成的。

JWT的使用方法通常是这样的:用户在登录时,服务器会验证用户的身份并生成一个JWT,然后把这个JWT返回给客户端,客户端在之后的请求中将JWT发送给服务器,服务器会验证JWT的合法性并且获取其中所包含的信息,这样就可以保证请求的正确性和安全性。

JWT的优点:

- 轻量级:JWT 生成的 token 很小,会大大降低网络负载;

- 可加密:JWT 可以被加密,可以保证传输的数据完整性;

- 自包含:JWT 中包含了用户信息等数据,服务器无需反复查询;

- 独立性:JWT 不依赖于任何第三方的身份验证方案。

实例:

假设一个用户在请求一个需要登录的 API 时发送了 JWT,那么服务器会检查 JWT 的签名是不是正确的,并且检查 JWT 中的载荷是否拥有正确的用户权限,如果 JWT 检查通过,那么就代表着用户是已经授权通过的。

JWT 的具体使用方法需要先了解每个字段的含义和格式,以下是一个 JWT 的示例:

```

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

```

该 JWT 包含了三个部分:

- 头部:`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9`

- 负载信息:`eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ`

- 签名:`SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`

在头部中,`alg` 所指定的签名算法是 HMAC SHA-256。Payload 中包含了 `sub`(subject)、`name`、`iat`(issued at) 等声明,而签名部份是将头部和正文组合并经过签名算法处理而后的签名结果。

总结:

JWT 可以了解为“令牌”或“信任的金钥”,是一种机制,它可以增加用于访问网络服务的信息,从而帮助客户端和服务器之间以可靠的方式进行通信。JWT 已被广泛应用于云端身份验证和授权系统,并且在各个环节中都是安全的。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(28) 打赏

评论列表 共有 2 条评论

断刀弃戟︶ 10月前 回复TA

祝你1马平川2亿资产3前有路4海逢源5星宾馆6碟一碗7喜临门8面威风9品官员10点上班快乐天天!

花伊自在美 1年前 回复TA

苦求乐是人性的自然,多苦少乐是人生的必然,能苦会乐是做人的坦然,化苦为乐是智者的超然。心态决定苦与乐,观念决定成与败。

立即
投稿
发表
评论
返回
顶部