You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS Amplify AppSync GraphQL @auth指令禁止公开用户列表查询

核心问题原因

你当前配置中的read是Amplify GraphQL预留的组合操作权限,默认包含get(单条查询)、list(列表查询)、sync(同步查询)三类操作,所以公开用户会自动获取listCustomers的调用权限。

修正后的Schema配置

type Customer @model 
@auth(rules: [
  # 公开用户权限:仅保留单条查询、创建、更新,移除列表权限
  {allow: public, operations: [get, create, update]},
  # admin组权限:默认拥有全量操作权限(包含列表查询、删除等)
  {allow: groups, groups: ["admin"]},
  # partner组权限:仅允许单条查询
  {allow: groups, groups: ["partner"], operations: [get]}
])  
{
   id: ID!
   firstName: String
   lastName: String
   email: String
   phone: String
}

权限规则说明

  • 公开未登录用户:仅可通过自己持有的id调用getCustomer查询单条自身数据,可创建、更新Customer,调用listCustomers会直接返回权限错误
  • admin用户组:拥有Customer的增删改查、列表查询全量权限,可正常调用listCustomers获取全量数据
  • partner用户组:仅可调用getCustomer查询单条Customer数据,无法调用列表查询,也没有增删改权限

生效验证步骤

  1. 修改schema后执行amplify push部署后端
  2. 分别用未登录状态、admin组账号、partner组账号调用listCustomers接口,验证权限拦截逻辑是否符合预期
  3. 验证三类用户的get、create、update操作是否正常可用

内容的提问来源于stack exchange,提问作者emch2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:15:05