【发布时间】:2021-09-28 13:36:59
【问题描述】:
我正在尝试在 Apollo Federation 中实现 Auth0,我能够在其单个服务 (https://auth0.com/blog/developing-a-secure-api-with-nestjs-adding-authorization/#Set-Up-API-Authorization) 中实现它,但如果我尝试通过网关访问 API,则标头/有效负载不会传递给服务,因此它总是未经授权的。
如果 API 是通过单个服务访问的,则有效负载会被接收并从标头中正确解码并且工作正常,但如果通过网关,它不会级联到需要它的服务。
目前使用的是代码优先实现。我也试过镜像服务中使用的模块,但还是不行。
单个服务中的示例负载
{
iss: 'issuer url here',
sub: 'google-oauth2',
aud: ['audience link'],
iat: ,
exp: ,
azp: '',
scope: '',
permissions: [ 'sample:permission' ]
}
在网关中导入
imports: [
ConfigModule.forRoot(),
GraphQLGatewayModule.forRoot({
server: {
cors: true,
},
gateway: {
serviceHealthCheck: true,
serviceList: [
{
name: 'service',
url: `${process.env.SERVICE_URL}/graphql`,
},
],
},
}),
]
【问题讨论】:
标签: graphql nestjs auth0 apollo-federation