简单理解一下JWT的工作原理

124 阅读1分钟

一、JWT工作流程 qq图片20210121164455.png

二、JWT工作原理

1、客户端通过POST请求将Web表单将正确的用户名和密码发送请求到服务端的API接口。建议的方式是通过SSL加密的传输(https协议),从而避免敏感信息被嗅探。

2、服务端核对用户名和密码成功后,将用户的id或者其他用来验证的信息作为JWT Payload(负载),将其与头部分别进行Base64编码拼接后签名,形成一个JWT。形成的JWT就是一个形同lll.zzz.xxx的字符串,并设置有效时间。

3、服务端将JWT字符串作为登录成功的返回结果返回给客户端。

4、客户端将返回的JWT以cookie的形式保存在浏览器上,并设置cookie的有效时间(建议客户端cookie和服务端JWT的有效时间设置为一致),用户登出时客户端需删除cookie。

5、客户端在每次请求时将JWT放入HTTP Header中的Authorization位。(解决XSS和XSRF问题)

6、服务端对收到的JWT进行解密和校验,如检查签名是否正确、Token是否过期、Token的接收方是否正确等。

7、验证通过后服务端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果,否则返回错误信息。