jwt和随机字符串生成的token有啥区别,,
简单的说,jwt声明了加密类型便于第三方的接入,载荷中可以保存有效的信息来满足一下业务或安全上的要求,如可以设置失效时间,也可以验证iss签发者,可以拓展公共声明满足相应的业务需求,签名则可以在不使用session或缓存的情况下验证合法性
jwt是有状态的,自解析的,resource-server通过jwt和公钥就能解码出用户信息
jwt包含了用户信息,resource-server不用再去auth-server获取user_id之类信息,提高性能
10 回答11.2k 阅读
15 回答8.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.3k 阅读
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
只说最直观的一点,token需要查库,而jwt可以不查或者少查,最终看你怎么设计jwt的payload,为了理解举个很简单的例子,现在有一个接口
/viptest
只能是vip用户访问,我们看看服务端如何根据Token判断用户是否有效普通token版:
假设JWT的payload是这个:
JWT版:
exp
isVip
JWT版是没有查库的,他所需要的基础信息可以直接放到JWT里,服务端只要判断签名是否正确就可以判断出该用户是否可以访问该接口,因为和当然JWT里的内容也不是无限多的,其他更多的信息我们就可以通过id去查数据库