在nest.js中存储用户信息或任何其他请求上下文信息的位置



这更多的是一个理论问题,而不是一个特定的代码问题。在我的nest.js API中使用JWT身份验证时,在成功完成令牌验证并收到用户标识后,我将在运行请求上下文中保存这些信息,以便在我的应用程序中(可能在服务或其他类中(深入使用。例如,我需要更新数据库中某条记录的某些属性以及更新者。此数据库查询可能嵌套在我的应用程序中,无法访问请求对象。

请注意,用户标识应仅在当前请求的上下文中可用,不同的请求可能具有不同的用户信息。我在nest的文档页面上读到了执行上下文,但这并没有给我任何想法。

NodeJS中的通常做法是将用户标识附加到request对象的user属性。passport就是这样做的,但请注意,由于Express和Fastifyrequest对象不同,这可能会导致两个适配器之间的一些不同行为。添加标识后(通常在保护中完成(,您将在控制器中从req.user获取标识(这可以通过提取整个请求(@Request()(或创建自定义装饰器来完成(