我正在Vue应用程序中使用Appsync,并设置了Cognito用户池,以便用户能够登录到我的应用程序。但是,我的应用程序中有些页面上未登录的用户应该只能查看,即:“ think:在堆栈溢出时读取答案”,但是在某些情况下,用户需要能够向其中添加评论该页面,需要登录才能对其进行编辑。
在Appsync中的API上,我已将授权设置为“ Amazon Cognito用户池”,并将默认操作设置为“允许”,但是如何使它成为非认知用户仍然可以查看页面?我应该使用哪种设置组合?
答案 0 :(得分:1)
令人讨厌的是,AppSync不支持多种身份验证方法,并且您已经注意到Cognito UserPool集成要求用户必须先登录才能访问graphql端点。
有一些解决方法,但是都没有那么漂亮:
viewer
的第一个参数。这可能是Cognito在身份验证时返回的访问令牌。然后,每个解析器将负责确定令牌是否有效(例如cognito::getUser
)或在未定义viewer
的情况下允许访问。尽管一开始听起来似乎最困难,但我还是建议我使用第一个解决方案。有多种方法可以使AppSync部署自动化,并且可以在架构中的开放内容和受保护内容之间明确区分 。