我正在通过 AWS Appsync 进行 graphql 订阅,并将 OpenID Connect 配置为身份验证方法。它适用于变异
和查询
,但不适用于订阅
。
type Mutation {
requestTransaction(transaction: TransactionRequestInput!): TransactionRequestACK!
@aws_oidc
responseTransaction(transaction: TransactionResponseInput!): TransactionResponse!
@aws_iam @aws_api_key
}
type Subscription {
responseTransaction(id: ID!): Transaction!
@aws_subscribe(mutations: ["responseTransaction"])
@aws_oidc
}
上面的架构是我正在使用的架构。每个字段都配置了一个 lambda 作为解析器。我可以使用 OIDC jwt token 向 requestTransaction
发送 mutation
请求。但是当我发送订阅
请求时,解析器不会被触发。客户端的订阅处于挂起状态,没有错误。使用 OIDC 订阅是否需要任何特殊配置?
最佳答案
Joey Yi Zhu,截至今天,即使您在输入中输入 OIDC token ,这也是 AWS Appsync 查询控制台中的一个已知错误。在订阅的情况下它不会传递,但在查询和突变的情况下它确实可以正常工作(您可以在浏览器的开发控制台中验证相同的内容)。在联系AWS支持后我了解到了这一点,因为我也面临着同样的问题。 如果您通过 aws-appsync 包等其他方式使用 OIDC 测试订阅,它会按预期工作。
关于amazon-web-services - 如何在 Appsync 中使用 OpenID Connect 验证订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62283062/