首页 > 解决方案 > 为什么说 JWT 代币是无状态的

问题描述

我在某处读到服务器必须不维护有关已发行令牌的状态。这是如何实现的?最终我需要查询数据库以找到持有令牌的人是谁。

有人可以向我解释范式吗?

谢谢。

标签: authenticationjwt

解决方案


有状态意味着服务器在内存中具有未存储到数据库中的信息。

想象一个word文档,两个人同时编辑它。每个用户的 Word 都有自己的状态。这意味着你可以说撤消,它知道你做了什么,所以它可以撤消。重要提示:此信息不会持久保存到任何数据库,而仅在服务器状态下可用。当您重新启动服务器(或 Word)时,此信息将丢失,并且您无法撤消最近的更改。

这对 JWT 意味着,服务器不会将会话保存在内存中。这反过来意味着它不记得您的最后一个请求已经过身份验证,而是要求您在每个请求上发送令牌。

该术语确实有点令人困惑,因为数据库中的数据有时也称为(应用程序)状态。


推荐阅读