【问题标题】:Where to store user information or any other request context information in nest.js在 nest.js 中存储用户信息或任何其他请求上下文信息的位置
【发布时间】:2020-04-27 11:31:18
【问题描述】:

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

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

【问题讨论】:

    标签: javascript nestjs


    【解决方案1】:

    NodeJS 中的通常做法是将用户身份附加到requestobject 的user 属性。 passport 就是这样做的,但请注意,因为 ExpressFastify request 对象不同,这可能会导致两个适配器之间出现一些不同的行为。添加身份(通常在警卫中完成)后,您会做什么,在控制器中,从req.user 获取身份(这可以通过拉取整个请求(@Request())或创建custom decorator 来完成)

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      相关资源
      最近更新 更多