【发布时间】:2021-08-19 07:23:50
【问题描述】:
我一直选择 jwt over session,因为后端的开销较小(请记住,这完全取决于用例),但我遇到的主要问题是令牌失效,例如:如果用户被停用,相关的 jwt 在过期之前仍然有效。有没有办法以经济有效的方式解决这个问题?
PS - 但是我在cookbook section on the featherjs 中看到了“撤销 JWT”这个词 框架。但看起来他们仍然使用 redis 作为查找,这反过来又使其继承了使用会话的缺点。
【问题讨论】:
-
JWT 可以在客户端解码,请确保不要在其中放入任何机密信息。
-
我理解@ArjunVachhani,但我的问题是如何使其成为有状态的,以防您需要在令牌过期之前使其失效
-
不要在 JWT 中存储关键信息,例如登录尝试失败次数等。您可能会存储一些信息,例如用户已完成第 5 步中的第 3 步,也可能存储一些不重要的信息。如果您将 JWT 存储在 cookie 中,则在状态更改时从 cookie 中删除/更新 JWT。如果您将 JWT 存储在表单字段中,则将其从表单字段中删除。
-
同时验证 JWT 没有被客户端修改,一旦你从客户端取回它。
标签: authentication jwt stateful