AppSync 错误:无权访问 Query 类型的 listTodos

问题描述 投票:0回答:1

我已经设置了一个基本应用程序来测试 Amplify 的 @auth 规则。我有这个简单的 graphql.schema:

type Todo @model @auth(rules: [{ allow: public }]) {
  id: ID!
  name: String!
  description: String
}

type Blog @model @auth(rules: [{ allow: owner }]) {
  id: ID!
  name: String!
  posts: [Post] @hasMany
}
...

当我尝试使用 AppSync 执行简单的列表操作时,

Blog
成功,但
Todo
返回错误:
Not Authorized to access listTodos on type Query

我已将 API (

amplify update api
) 设置为使用 Cognito 用户池作为默认身份验证,并使用 API 密钥作为辅助身份验证类型。我希望
allow: public
允许使用 API 密钥进行访问,但事实并非如此?

aws-amplify aws-appsync
1个回答
0
投票

对于公共用户,建议您使用 IAM 对未经身份验证的用户进行身份验证以运行查询。

这是@auth的示例:

type Todo
  @model
  @auth(
    rules: [
      { allow: owner, operations: [create, update, delete, read] }
      { allow: private, operations: [read] }
      { allow: public, provider: iam, operations: [read] }
    ]
  ) 

更改架构后,转到

CLI
,然后按照此图片写入
amplify update auth

© www.soinside.com 2019 - 2024. All rights reserved.