如何使用Appsync中的OpenID Connect对订阅进行身份验证?

时间:2020-06-09 12:51:19

标签: amazon-web-services graphql aws-appsync

我正在通过AWS Appsync进行graphql订阅,并将OpenID Connect配置为身份验证方法。它适用于mutationquery,但不适用于subscription

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令牌向mutation发送requestTransaction请求。但是当我发送subscription请求时,解析器未触发。客户端上的订阅处于挂起状态,没有错误。订阅OIDC是否需要任何特殊配置?

1 个答案:

答案 0 :(得分:0)

Joey Yi Zhao,到目前为止,即使您在输入中输入OIDC令牌,这也是AWS Appsync查询控制台中的一个已知错误。在订阅的情况下不会传递它,但在查询和突变的情况下它可以正常工作(您可以在浏览器的开发控制台中进行验证)。我联系AWS支持后就知道了这一点,因为我也面临着同样的问题。 如果您通过其他方式(例如aws-appsync软件包)使用OIDC测试订阅,则该订阅将按预期工作。