JWT 与 Session 的困惑求解
很多开发者对 JWT 和 Session 仍有诸多疑问,本文将深入探讨它们之间的差异,并回答一些常见的问题。
JWT 简介
JWT(JSON Web Token)本质上是一个包含用户信息的令牌,存储在浏览器的本地存储中。它可直接由客户端呈现给服务器,从而免除服务器查询数据库或其他中央服务以获取用户身份信息的需要。
JWT 的限制
尽管 JWT 具有便捷性,但它无法实现用户权限的动态变更,如踢人操作。由于 JWT 一旦创建便不可修改,因此无法更新或撤销用户权限。
JWT 与 Session 的取舍
考虑踢人之类的需求时,JWT 的优势将荡然无存。这时,更适合回归到 Session 解决方案。Session 就像一个存储客户端信息的字典,服务端通过客户端传递的密钥
来获取 Session。传统的方法是将 Session ID 存储在 Cookie 中,而移动端的 Token 实际上也扮演着类似于 Session ID 的角色。
最佳实践建议