知识卡片
JWT与Session-Cookie的架构取舍
内容
[[Session-Cookie的运作机制与外部化需求]]属于有状态方案,服务端始终掌握着每个会话的实时状态,因此能做到”强制下线”“限制同账号并发登录数”这类需要服务端主动介入的能力;[[JWT的自包含验证机制]]属于无状态方案,不依赖Cookie也不受同域限制,天然适合跨域、跨移动端场景,且验证不需要访问外部存储,更利于水平扩展。取舍的核心问题是:这个系统是否需要服务端能随时”收回”一个已下发的凭证——需要,就得接受有状态方案的存储与扩展成本;不需要,才能真正享受无状态方案的扩展红利。发散:很多系统会折中,用JWT承载身份但额外维护一份短效黑名单,本质上是在无状态的骨架上悄悄挂回一点有状态的控制力。
参考来源
《Spring Boot应用开发实战》第5章《应用程序安全性》