讲得很好,赞
补充一点,jwt唯一的缺点我觉得就是无法即时invalid一个特定的token,如果业务需要,必须另作一个类似于session的小invalided joken池。因为不太可能短时间内遇到大量需要invalid的jwt,所以这个池子一般放单机内存就够了,不会使得架构更加复杂化。
另外值得提的区别就是,jwt服务端加解密稍微会多耗一点cpu,而session方案或者多耗点内存或者多耗点时间(硬盘io or redis 网络io)。
【 在 eGust (十年) 的大作中提到: 】
: 啥意思,没看懂,但跟旧的 session id 要不要通过验证是等价的,session 啥样 jwt 就啥样
: 你要搞清楚,jwt 跟 session 在本质上是没差别的,都是证明是由服务器签发的 token。不同的是验证方式,session 放在内存/硬盘里,jwt 不存,通过私钥来验证签名是由服务器发出的。session 需要把跟 token 对应的信息都放在内存/硬盘里,jwt 把对应的信息放在签名里面了
: 其它的方面没有任何差别,任何你觉得需要放在服务器内存/硬盘里的东西,通过私钥签个名连带着关联的东西发出去就完了。甚至是不是 jwt 都不重要,只不过 jwt 标准化了,各个语言都有实现。
: ...................
--
FROM 120.244.120.*