jwt和token区别

2 篇文章 0 订阅

token的验证机制流程:


1.用户输入账户和密码请求服务器

2.服务器验证用户信息,返回用户一个token值

.客户端存储token值,在每次请求都提交token值

4.服务器根据token验证用户信息,验证通过后返回请求结果

token必须要在每次请求时传递给服务端,都保存在header中

缺点:

1.内存级别重启全部失效(都保存在redis中)

2.时效性,无法失效,被非法获取之后可以一直使用

3.集群部署,多台服务器无法共享,在负载会导致用户状态不同步
 

JWT(Json Web Token)
JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了jwt字符串,第一部分我们称它为头部(header),第二部分我们称其为载荷(payload, 类似于飞机上承载的物品),第三部分是签证(signature)。

header

jwt的头部承载两部分信息:

声明类型,这里是jwt
声明加密的算法 通常直接使用 HMAC SHA256
将头部进行base64加密(该加密是可以对称解密的),构成了第一部分。

playload

载荷就是存放有效信息的地方。这个名字像是特指飞机上承载的货品,这些有效信息包含三个部分

标准中注册的声明
公共的声明
私有的声明
signature

jwt的第三部分是一个签证信息,这个签证信息由三部分组成:

header (base64后的)
payload (base64后的)
secret
这个部分需要base64加密后的header和base64加密后的payload使用,连接组成的字符串,然后通过header中声明的加密方式进行secret组合加密,然后就构成了jwt的第三部分。

secret是保存在服务器端的,jwt的签发生成也是在服务器端的,secret就是用来进行jwt的签发和jwt的验证,所以,它就是你服务端的私钥,在任何场景都不应该流露出去。一旦客户端得知这个secret, 那就意味着客户端是可以自我签发jwt了

最后将这三部分连接成一个完整的字符串,构成了最终的jwt

JWT(Json Web Token)-Token
1.JWT生成的token是无状态的,服务端不存储,即一旦生成在有效期之前一直可用,无法销毁

2.如果需要刷新token有效期或者提前失效需要借助缓存、数据库或者redis来自己实现对应逻辑

3.JWT无状态=>不需要通过存储验证是否正确,本身可以验证

4.手动销毁:必须借助于第三方类似黑名单的方式=> 把检测到的非法token添加到黑名单中,每次验证token是否有效要先过黑名单,如果存在黑名单中直接拒绝

5.由于json的通用性,所以JWT是可以进行跨语言支持的
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值