scope - 如何访问 request.user nestjs 微服务?
问题描述
我有一个带有 api 网关的微服务设置,它接受 http 请求并使用消息模式将它们传递给微服务(媒体服务、支付服务等)。
我可以访问 api-gateway 中的 request.user,它为我提供了来自解码的 jwt 的经过身份验证的用户。我想要的是,将它传递给媒体微服务并在媒体服务的功能中访问它。
我如何实现这一目标?
api-gateway 中的控制器
export class MediasController {
constructor(@Inject('MEDIA_SERVICE') private client: ClientProxy) { }
@Get()
@UseGuards(AuthGuard('jwt'))
async find(@Query() query: QueryArgs): Promise<any> {
const pattern = { cmd: 'media-find' };
return await this.client.send<any>(pattern, query)
}
}
媒体微服务中的控制器和服务
媒体控制器.ts@Controller({ path: 'medias', scope: Scope.REQUEST })
export class MediasController {
constructor(private readonly mediasService: MediasService) { }
@MessagePattern({ cmd: 'media-find' })
async find(query: any): Promise<any> {
return await this.mediasService.find(query)
}
}
媒体服务.ts
export class MediasService {
constructor(@InjectRepository(Media) private readonly mediaRepository: Repository<Media>) {
}
async find(query): Promise<Media[]> {
// access request.user here
return await this.mediaRepository.find(query);
}
}
解决方案
推荐阅读
- pdf - iText 的 SameLine 函数背后的逻辑是什么?
- python - 在反向关系列表中过滤 Django 模型
- javascript - 希望在按下提交输入时显示文本,并在 3 秒后重定向到 Index.html
- entity-framework - 无法“预热”实体框架
- react-native - 在 react-native-gifted-chat 中编辑头像位置
- javascript - 如何检查表的值是否串联?
- javascript - 全屏html5中的关闭按钮
- bash - CPP 检查不在本地机器上
- javascript - 如何使用 DoCheck [Angular] 在月份选择器上反映/突出显示手动输入的月份
- python - Python实验室中'_'下划线的任何快捷方式?