我计划在nestjs控制器中实现注销功能,四处搜索,找不到任何有用的源。我必须调用logout函数并使jwt无效,然后向FE提供响应。如有任何帮助或指导,我们将不胜感激。
JWT是自包含的,并不是为无效而设计的,它将一直有效到过期。
如果您想在用户注销时阻止对后端API的访问,您可以考虑以下策略:
- 使用不透明的OAuth访问令牌来保护API的安全,而不是JWT的安全(不透明的访问令牌通常可以在颁发它们的授权服务器上撤销(
- 对于后端和前端之间的所有通信,请使用传统会话。(另请参阅NestJS会话(
- 在后台维护已吊销JWT令牌的黑名单(或有效令牌的白名单(
虽然您可以使用JWT来确保对后端API(例如REST API(的访问,但使用JWT维护会话被认为是一种糟糕的做法。如果要维护后端和前端之间的会话,则应该使用传统的会话机制。