Hello! 欢迎来到小浪资源网!



JWT与Session:哪个更适合动态权限变更?


JWT与Session:哪个更适合动态权限变更?

JWT 和 Session 的疑虑

对于 JWT 和 Session,以下是一些常见的疑问:

疑问 1:JWT 和用户权限动态变更

JWT 本质上是一种持久化用户信息的方案,但能否实现用户权限的动态变更,例如踢出用户?

回答:

当需要踢出用户时,JWT 的优势就会丧失,因为服务端需要查询数据库才能获取用户信息。在这种情况下,使用 Session 方案更适合,因为 Session 可以直接从请求中获取用户身份信息。

疑问 2:JWT 与基于 Session 的解决方案

如果不能动态变更用户权限,是否需要回归到基于 Session 的解决方案?

回答:

对于需要动态变更用户权限的场景,基于 Session 的解决方案更合适。JWT 更适用于服务与服务之间的通信,无需考虑踢出用户等操作。

Session 的机制

Session 是一个类似于 map数据结构,客户端通过请求携带一个 key,服务端利用此 key 获取 Session。最常见的实现方式是在 Cookie 中放置 sessionid,类似于移动端应用中的 Token。JWT 实际上将“查询 Session”的操作转变为“解析 Session”的操作。

相关阅读