nestjs - 从 guard 返回数据库对象

问题描述 投票:0回答:1

在保护验证后获得数据库响应的最佳实践是什么

1-在守卫验证期间我检查用户是否在数据库中做这里我想在整个控制器中返回用户

如何让用户获得控制器?

我找到的解决方案是设置 request.user 并获得 id 作为身体参数,但我不喜欢它

有更好的方法吗? 我需要在所有控制器中做那个 almos

这是我的守卫

  async canActivate(context: ExecutionContext) {
    try {
      const request = context.switchToHttp().getRequest();
      const key = this.extractAuthFromRequest(request);
      const data = await this.authService.getFromDb(key);
      request.data = data;
authentication nestjs nest interceptor guard
1个回答
0
投票

这是最常见的做法,在请求对象上设置一个新属性,然后在控制器中使用

request.propertyName
访问它。守卫不能转发数据,否则他们只返回一个布尔值。这就是中间件在节点中运行了很长时间的方式

© www.soinside.com 2019 - 2024. All rights reserved.