1

设置:

  • 带有 GraphQL 的 AWS Amplify API
  • AWS Amplify Auth w/ Cognito 用户池

假设登出用户应该可以访问该平台的大部分内容。例如,他们应该能够阅读论坛Topics,但如果他们想发帖,他们需要登录。

我看到了一个可以使用的@auth 解析器,但是每当我尝试对my.url.amazonawscom/graphqlfetch进行 graphQL 调用时Topics,它都会显示"errorType": "UnauthorizedException". 我无法弄清楚已注销的用户如何获得对可公开访问数据的授权。

4

2 回答 2

1

AWS AppSync 最近在同一个 AppSync API 上推出了对多种授权类型的支持。因此,您可以例如启用 cognito 用户池作为 API 上的授权类型,并将 API_KEY 添加为额外的授权提供程序。

在此之后,您将能够使用 @aws_api_key 指令从您的架构中选择字段,例如 getForumTopics 进行 api 密钥身份验证。API 密钥通常被认为提供公共访问权限。

此外,Cognito 用户池和 Cognito 联合身份是独立的产品。Cognito 联合身份确实具有未经身份验证的身份角色,您可以使用它来保护架构中的顶级字段,但看起来您的 API 上的身份验证类型设置为 Cognito 用户池。

于 2019-08-01T23:25:00.153 回答
0

在 Cognito 身份池中,您需要为未经授权的用户设置策略。转到编辑身份池,您可以看到一个可以将角色设置为未经授权的选项

于 2019-07-24T17:51:53.300 回答