AWSAmplify基于字段值的GraphQL授权问题
创始人
2024-11-19 01:30:19
0

要实现基于字段值的GraphQL授权,需要使用AWS Amplify中的权限指令(auth directive)和自定义认证规则(custom auth rule)来对GraphQL查询进行授权。下面是详细的步骤:

  1. 首先,需要在GraphQL模式中添加一个自定义枚举类型(status),该类型包含允许访问的状态值列表。
enum Status {
  PUBLISHED
  DRAFT
  ARCHIVED
}
  1. 然后,在GraphQL查询中添加一个权限指令,以指定只有某些状态值的用户可以访问对应的字段。
type Post @model
@auth(rules: [
  { allow: groups, groups: ["Admin"] },
  { allow: private, operations: [read], provider: iam, ownerField: "userID" },
  { allow: public, operations: [read] }
]) {
  id: ID!
  title: String!
  status: Status! @auth(rules: [{ allow: groups, groups: ["Admin", "Publisher"], operations: [read] }])
  content: String!
  userID: String!
}
  1. 最后,创建一个自定义认证规则,以检查用户的状态是否包含在允许访问的状态值列表中。
const customAuthRules = {
  status: {
    allow: async (args, context) => {
      const { status } = args;
      const { claims } = context;
      if (!status) {
        throw new Error('Missing status');
      }
      if (!claims || !claims['custom:status']) {
        throw new Error('Missing custom:status claim');
      }
      const allowed = ['PUBLISHED', 'ARCHIVED'].includes(status);
      const userStatus = claims['custom:status'];
      const authorized = userStatus && userStatus.includes(status);
      return allowed && authorized;
    }
  }
};

Amplify.addCustomAuthRules(customAuthRules);
  1. 现在,当用户执行GraphQL查询时,就会调用自定义认证规则来检

相关内容

热门资讯

第三分钟辅助!hhpoker作... 第三分钟辅助!hhpoker作弊码,wepoker怎么看底牌,手段教程(有挂教程)wepoker怎么...
第9分钟辅助!aapoker辅... 第9分钟辅助!aapoker辅助器是真的吗,aa poker辅助包,绝活儿教程(有挂助手)1.aap...
第2分钟辅助!wepoker免... 第2分钟辅助!wepoker免费透视脚本,wepoker免费透视,指南教程(有挂细节)1、wepok...
第六分钟辅助!steampok... 第六分钟辅助!steampokermaster辅助,sohoopoker辅助,经验教程(有挂透视)1...
6分钟辅助!约局吧德州有挂吗,... 6分钟辅助!约局吧德州有挂吗,epoker有透视吗,项目教程(真是有挂)1、首先打开约局吧德州有挂吗...
7分钟辅助!pokemmo手机... 7分钟辅助!pokemmo手机版脚本免费,wepoker数据分析工具,手册教程(有挂透视)暗藏猫腻,...
6分钟辅助!aapoker能控... 6分钟辅助!aapoker能控制牌吗,pokemmo脚本最新版,教程书教程(有挂辅助)1、aapok...
第3分钟辅助!werplan脚... 第3分钟辅助!werplan脚本,德普之星透视辅助插件,技法教程(有挂方法)1、德普之星透视辅助插件...
四分钟辅助!wpk是真的还是假... 四分钟辅助!wpk是真的还是假的,we poker辅助器下载,练习教程(有挂解密)1、下载好wpk是...
第2分钟辅助!哈糖大菠萝有挂吗... 第2分钟辅助!哈糖大菠萝有挂吗,hh poker辅助有用吗,指南教程(详细教程)哈糖大菠萝有挂吗脚本...