知识卡片
JWT的自包含验证机制
内容
JWT把身份信息直接编码进令牌本身,由标头(算法类型)、负载(用户信息等声明)、签名(用密钥对前两部分加密生成)三段拼接而成。验证时服务端只需用密钥重新计算一次签名并比对,不需要访问数据库或缓存查一次”这个令牌对应的用户状态是什么”,因为令牌自己就携带了这些信息且不可篡改(一旦内容被改动,重新计算出的签名对不上)。发散:这是”自包含”设计思路的典型例子——把状态从存储系统里挪出来,直接塞进凭证本身随身携带,换来的是验证时不再依赖外部存储的读取延迟,代价是这个凭证在签发后其内容基本不可撤回更改(除非维护一份黑名单,这又违背了无状态的初衷)。
参考来源
《Spring Boot应用开发实战》第5章《应用程序安全性》