authentication - JWT 和 session 的黑名单有什么区别?

标签 authentication jwt authorization

实现登录流程并被 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/

相关文章:

ruby-on-rails - 如何按原始顺序获取 POST 参数(使用 Rails)?

authentication - 如何在使用 httpOnly cookie 时保护 SPA 中的私有(private)路由

amazon-web-services - Cognito 刷新 token 是 "valid"JSON Web token 吗?

python - 如何使用 Python 抓取需要先登录的网站

c# - 授权属性忽略 [AllowAnonymous]

python - Django 中的嵌入式身份验证 + LDAP 用户验证。如何?

azure - AD B2C 电子邮件地址不完全支持单引号

c# - 从服务器获取 Windows 登录名

java - 使用 Java 的 Auth0 JWT

c# - 在 asp.net mvc core 2 OpenIdConnect 中关闭 AutomaticChallenge