我读过的每篇文章都证明了JWT的优势,即其中一个优点是它能够将auth系统分布在多个服务器上.即您不依赖于用户身份验证详细信息的中央存储库来对每个请求进行查找.
但是,当涉及到实现时,我已经在很多地方读过,为了增加安全性,您不应仅仅依赖于JWT签名验证本身,而且应该维护服务器生成的黑名单或白名单令牌列表.
这不会破坏我上面列出的优势,因为这个令牌列表需要集中存储,所有服务器都可以访问它,并且需要查找每个请求吗?
人们如何实现这一目标?
最佳答案 你在问题中提出了非常好的观点.实际上,将OAuth令牌存储在中心位置是有意义的,以便更容易实现注销/撤销功能.如果您只是依赖令牌签名,那么您可能无法实现此类功能.假设用户想要撤销访问令牌.在这种情况下,如果您没有中心位置/数据存储区用于那些您将使其无效且仅依赖于令牌签名的令牌,则令牌仍然有效.
实际上,当您想要构建依赖于OAuth令牌的更高级系统时,这些令牌的中央存储不仅仅是必须的.