我发现的最流行的示例(以及 JWT-Auth 库中的代码)提供了通过黑名单使 JWT 无效的机制。如果需要使令牌失效,则将其添加到黑名单中,黑名单本质上只是一个受波动影响的缓存。
我对我的应用程序的担忧是,如果攻击者收到某人的 JWT,如果服务器被迫重新启动(或任何其他导致缓存被擦除的情况),JWT 不会失效并且攻击者可以使用先前无效的令牌(尽可能不可能)。我目前正在决定实施参考令牌,这样可以手动使 JWT 失效,但是当您意识到它并使您的令牌失效时,攻击者很可能已经造成了损害。
是否暗示令牌的生命周期足够短,足以证明基于缓存(可以清除/擦除/丢失)使其无效?