Nestjs Crud:筛选加入请求以仅返回当前用户的数据
目前我的控制器中有他的:Nestjs Crud:筛选加入请求以仅返回当前用户的数据,nestjs,typeorm,Nestjs,Typeorm,目前我的控制器中有他的: @Crud({ model: { type: Broker }, query: { join: { user: { eager: true, exclude: ['password'] } } } }) @Controller('broker') @UseGuards(AuthGuard('jwt')) export class BrokerController { co
@Crud({
model: {
type: Broker
},
query: {
join: {
user: {
eager: true,
exclude: ['password']
}
}
}
})
@Controller('broker')
@UseGuards(AuthGuard('jwt'))
export class BrokerController {
constructor(public service: BrokerService) {}
}
用户和代理之间存在一对多关系。我正在通过jwt令牌对用户进行身份验证,我需要过滤用户id上的数据。有没有办法通过Crud配置实现这一点?您可以创建一个中间件,从会话中将用户id添加到req.params。
这是一个技巧,但到目前为止,我还没有看到另一个解决方案,正如@ilker之前回答的那样:
@CrudAuth({
property: 'user',
filter: (user) => ({
userid: user.userid,
})
})
@CrudAuth({
property: 'user',
filter: (user) => ({
userid: user.userid,
})
})
这将从JWT令牌中获取“用户”,您可以使用它来过滤实体
@nestsjx/crud是一个非常棒的库
关于是因为
经纪人
有许多用户
?您是否需要通过一些特殊的URL使用它?据我所知,它提供了自定义查询方法。因此,如果它位于特定的路径上,您可以使用当前用户的idOne轻松查询。用户可以有多个代理,但一个代理属于一个用户—一对多。你能举个例子吗?我看到你在github问题页面上已经有了相同的答案:)这里是一个为其他人提供的“黑客”解决方案的链接:请通过一些解释来提高你的答案的质量。感谢你为@ilker的答案添加细节,这可能有助于理解该解决方案。然而,让两个答案如此相似,我有点不舒服。最好是在他们的帖子上建议编辑,或者在这里给他们明确的代码(你几乎用“之前的回复”做到了这一点)。