在NESTJS控制器中实现注销并使jwt令牌无效的最佳实践是什么



我计划在nestjs控制器中实现注销功能,四处搜索,找不到任何有用的源。我必须调用logout函数并使jwt无效,然后向FE提供响应。如有任何帮助或指导,我们将不胜感激。

JWT是自包含的,并不是为无效而设计的,它将一直有效到过期。

如果您想在用户注销时阻止对后端API的访问,您可以考虑以下策略:

  1. 使用不透明的OAuth访问令牌来保护API的安全,而不是JWT的安全(不透明的访问令牌通常可以在颁发它们的授权服务器上撤销(
  2. 对于后端和前端之间的所有通信,请使用传统会话。(另请参阅NestJS会话(
  3. 在后台维护已吊销JWT令牌的黑名单(或有效令牌的白名单(

虽然您可以使用JWT来确保对后端API(例如REST API(的访问,但使用JWT维护会话被认为是一种糟糕的做法。如果要维护后端和前端之间的会话,则应该使用传统的会话机制。

最新更新