首页 > 其他分享 >什么是JWT

什么是JWT

时间:2023-02-19 10:22:48浏览次数:31  
标签:什么 JWT sessionid 签名 服务器 payload 客户端

什么是JWT

JWT(json web token) 要说JWT是什么,先谈谈没有JWT的时候是怎么进行身份验证的呢?

通常会用到session

  1. 客户端登陆服务器填写用户名密码
  2. 服务器验证身份保存一个session并返回sessionid给客户端
  3. 客户端把sessionid存在cookie中
  4. 后续每次请求都会带上这个sessionid
  5. 服务器验证sessionid就会知道这个是之前登录的用户

session通常是保存在内存中,这种验证模式在单服务器中是没有问题的,但是在服务器集群就会出问题,服务器分流可能导致用户下次登陆不一定在同一台服务器上

那么JWT是怎么解决这个问题的呢

JWT把用户信息(也称作令牌)直接写在客户端,直接由客户端告诉服务器自己的身份。

那你可能会说这怎么行,太容易造假了,说自己是管理员就是管理员吗?

为了防止造假,保存在客户端的令牌是经过服务器私钥加密签名处理的,当用户使用JWT访问服务时,再通过验签来判断信息是否被修改过。

可以有两种验证方式:

  1. 服务端拿到header和payload的信息,通过header里的加密算法拿着我们自己的私钥对payload生成一个签名对比JWT传过来的签名,如果签名一致,说明payload的信息没有被修改。
  2. 我们利用公钥对签名解密,解密出来的header和payload的信息是否和传过来的一致。

下一章介绍下.Net怎么使用JWT

标签:什么,JWT,sessionid,签名,服务器,payload,客户端
From: https://www.cnblogs.com/zebrafish/p/17134292.html

相关文章