繁体   English   中英

借助AWS Amplify Auth和GraphQL API,您将如何进行一些公共和私有查询/突变调用?

[英]With AWS Amplify Auth and GraphQL API, how would you have some public, and some private query/mutation calls?

设定:

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

假设登出的用户应该可以访问大多数平台。 例如,他们应该能够阅读论坛Topics ,但是如果他们要发布,则需要登录。

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

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

AWS AppSync最近在同一AppSync API上启动了对多种授权类型的支持。 因此,例如,您可以在您的API上启用cognito用户池作为授权类型,并将API_KEY添加为其他授权提供者。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM