【问题标题】:AWS APPSYNC how to apply aws_api_key authorizationAWS APPSYNC 如何应用 aws_api_key 授权
【发布时间】:2020-12-02 02:48:10
【问题描述】:

如何申请@aws_api_key 授权,我按照文档中的说明申请了,但仍然出现未经授权的错误

type Todo @aws_api_key @model
{
  id: ID!
  name: String!
  description: String
}

Graphql 查询

query toTods {
  listTodos {
    items {
      id
      name
    }
  }
}

给了我未经授权的错误,我可以通过转到 APPSYNC 控制台并编辑架构来获得预期的结果

type Query {
    getTodo(id: ID!): Todo
    listTodos(filter: ModelTodoFilterInput, limit: Int, nextToken: String): ModelTodoConnection
        @aws_api_key
}

type ModelTodoConnection @aws_api_key {
    items: [Todo]
    nextToken: String
}

但是,如果我进行放大推送,我会放弃所有这些更改。如何在父类型 Todo 中指定所有这些

【问题讨论】:

  • 你能解释一下你是如何在你的架构中应用这个装饰器的吗?
  • 问起来有点傻,但只是想确保我们在同一页面上。您是否分别在AWSAppSyncClientlistTodos 查询声明中声明了authauthMode
  • 我只是从 aws appsync 控制台尝试,选择 API_KEY 进行授权
  • 对不起,我在这里有点困惑。你在关注this 教程吗?
  • amplify push 将覆盖您的旧/修改模式。因此,为了指定这些更改,您必须在 javascript 代码中添加 authauthMode,如本教程的“配置授权模式”部分所述。

标签: aws-amplify


【解决方案1】:

假设您在后台运行 lambda,并且该 lambda 正在调用一些应用程序同步 API,因此您可以在该 graphql API 的响应返回类型中应用 @aws_api_key。这可以访问该 lambda 以调用该 graphql API。 例如;

type Myclass @aws_api_key {
id: ID!
name: String
students: [Student]
batch: Int
}

extend type Mutation {
   getClass(id: Int!): Myclass @aws_api_key
} 

extend type Subscription {
onGetClass: Myclass @aws_subscribe(mutations: ["getClass"])
}

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 2019-03-11
    • 2018-12-13
    • 2021-09-23
    • 2021-07-28
    • 1970-01-01
    • 2020-12-11
    • 2021-08-13
    相关资源
    最近更新 更多