首页 > 解决方案 > 如何在 NestJS 中设置身份提供者“中间件”?

问题描述

我正在尝试 NestJS,并且对目前的结果非常满意。现在,我正在为一些在我脑海中不够清晰的概念而苦苦挣扎。

我的 API 有一个 cookie 格式的授权令牌(不是 JWT)。当 API 接收到请求时,它必须使用所述 cookie 来询问另一个服务(异步),哪个用户正在发送它以及他具有什么角色。

这种从 cookie 到用户信息的交换应该预先考虑任何控制器逻辑,并且应该在全局范围内应用。

我认为这可以通过中间件、拦截器或管道来完成,但是根据 NestJS ,哪一个被认为是更好的方法?

标签: nestjs

解决方案


老实说,我会为这种功能使用警卫。检查cookie是否存在,如果不存在,则已经有问题,发回403(即return false)。否则,可以遵循其余逻辑,您可以将信息附加到您的req对象,从而在请求的其余部分中使用它。由于守卫是第一个发射的增强器,这也确保了该值在拦截器和某些管道中可用。


推荐阅读