实现登录流程并被 JWT 说服,因为我们将扩展作为优先事项。 过去,系统将基于单体应用程序中的 session token 。 JWT 意味着我们显然不再需要为用户 session 提供缓存服务器。那么这就是我感到困惑的地方:
如果我通过保留 key 黑名单(这是建议)来解决撤销和 token 窃取的问题,那么现在从上面看起来与 session token 完全相同,因为我正在对每个请求进行查找。
也许我没有完全理解某些事情或认为这是错误的。 也许 - 未找到被阻止的 JWT 的结果比完整检索更快。
感谢任何可以解决这个问题的东西:)
最佳答案
如果您实现了一项保留 token 黑名单的功能,那么实际上这与 session 相比并没有太大变化。您仍然需要查找 token 、保持黑名单更新、正确复制等。
可能更好的方法是使用过期时间非常短的访问 token ,例如 5 或 15 分钟。时间足够短,您可以接受有人窃取 token 并在短时间内使用它的风险。那你只能保留一个刷新 token 的黑名单,这些刷新 token 很少使用。
关于authentication - JWT 和 session 的黑名单有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69990644/