Nestjs Crud:过滤加入请求以仅返回当前用户的数据

时间:2019-08-28 12:41:30

标签: nestjs typeorm

目前,我将他加入了我的控制器:

@Crud({
  model: {
    type: Broker
  },
  query: {
    join: {
      user: {
        eager: true,
        exclude: ['password']
      }
    }
  }
})
@Controller('broker')
@UseGuards(AuthGuard('jwt'))
export class BrokerController {
  constructor(public service: BrokerService) {}
}

用户和代理之间存在 one to many 关系。我正在通过jwt令牌对用户进行身份验证,并且需要根据用户ID过滤数据。有什么办法可以通过Crud配置做到这一点?

3 个答案:

答案 0 :(得分:0)

您可以创建一个中间件,该中间件会将用户ID添加到会话中的req.params。 这是一个把戏,但是到目前为止我还没有看到其他解决方案

答案 1 :(得分:0)

@CrudAuth({
  property: 'user',
  filter: (user) => ({
    userid: user.userid,
  })
})

答案 2 :(得分:0)

正如@ilker 之前的回应:

@CrudAuth({
  property: 'user',
  filter: (user) => ({
    userid: user.userid,
  })
})

这将从 JWT 令牌中获取“用户”,您可以使用它来过滤实体。

@nestsjx/crud 是一个非常棒的库。

问候