【发布时间】:2022-06-17 05:09:33
【问题描述】:
在我的schema.graphql 文件中,我有以下内容:
type Floorplan @model @auth(rules: [
{ allow: private, operations: [read], provider: userPools },
{ allow: owner, provider: userPools }
]) @aws_cognito_user_pools {
id: ID! @primaryKey
name: String!
bedrooms: Int!
}
input FloorplanInput {
id: ID!
name: String!
bedrooms: Int!
}
type Mutation {
floorplanLambda(input: FloorplanInput): Floorplan
@function(name: "floorplanLambda-${env}")
@aws_cognito_user_pools
}
我创建了 lambda 函数以在更新前执行自定义验证。
问题是任何经过身份验证的用户都可以更新其他用户的平面图。我以为添加 @aws_cognito_user_pools 可以解决这个问题,但事实并非如此。
问题:我需要添加什么来锁定floorplanLambda函数,以便它只能由Floorplan模型的所有者成功调用?
调用 floorplanLambda 时,我收到错误消息:“未授权访问 Floorplan 类型的 floorplanLambda”。我正在使用 authMode AMAZON_COGNITO_USER_POOLS 拨打电话。
对于更多上下文,我按照本教程创建了自定义突变 lambda 函数:https://www.theclouddeveloper.io/use-lambda-resolvers-in-your-graph-ql-api-with-aws-amplify
【问题讨论】:
标签: graphql aws-amplify