前言
JWT是JSON Web Token的简称。
JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,以JSON对象的形式在各方之间安全地传输信息。可以验证和信任该信息,因为它是数字签名的。客户端只需要使用凭据对服务器进行一次身份验证。在此期间,服务器验证凭据并向客户端返回一个JSON Web令牌(JWT)。对于以后的所有请求,客户机都可以使用这个JSON Web令牌(JWT)向服务器进行身份验证,因此不需要发送用户名和密码等凭据。
JWT是如何运作工作?

在第一个请求期间,客户端发送一个带有用户名和密码的POST请求。
身份验证成功后,服务器生成JWT并将此JWT发送给客户机。这个JWT可以包含数据的有效负载。在所有后续请求中,客户端在头中发送这个JWT令牌。
服务器使用此令牌对用户进行身份验证。因此,在每个身份验证请求期间,我们不需要客户机向服务器发送用户名和密码,而只需要服务器向客户机发送一次JWT。
JWT有效负载可以包含用户ID这样的内容,这样当客户端再次发送JWT时,您可以确保它是由您发出的,并且可以看到它是向谁发出的。
JWT结构
JWT有以下格式 -header.payload.signature


关于JWT需要记住的重要一点是JWT有效载荷中的信息对每个人都是可见的。所以我们不应该在有效载荷中传递任何敏感信息,比如密码。
我们可以加密有效载荷数据如果我们想让它更安全。但是我们可以确定没有人可以篡改和改变有效载荷信息。如果这样做了,服务器将识别它。
生成一个JWT
我们将使用JWT在线令牌生成器创建JWT令牌。
如下方式定义负载内容

添加自定义负载内容字段

使用散列算法为有效负载签名

检查Token的内容
我们将使用JWT在线解码器检查JWT令牌

下一篇文章将给大家带来Spring Boot Security + JWT Hello World示例


扫二维码|关注我们
微信号|jamesmsw
官方地址 | iot.mushuwei.cn
GitHub|IOT-Technical-Guide




