AppSync基于isPrivate字段的所有者授权条件配置咨询
问题解答
仅通过Schema配置就能实现这个需求,不需要自定义Lambda解析器。
你可以通过在@auth指令的read权限规则中添加条件判断来实现目标逻辑:当isPrivate为false时允许所有用户读取,当isPrivate为true时仅所有者可读取。修改后的配置如下:
@auth( rules: [ { allow: groups, groups: ["user"], operations: [create] }, { allow: public, operations: [read], condition: { isPrivate: { eq: false } } }, { allow: owner, operations: [read] } ] )
规则说明:
- 第一条规则保留原有配置,允许
user组的所有用户执行create操作; - 第二条规则针对
read操作,设置条件isPrivate: { eq: false },当实体的isPrivate字段为false时,所有用户(包括未登录用户)都能读取; - 第三条规则确保实体所有者无论
isPrivate的值是什么,都始终拥有read权限,同时当isPrivate为true时,只有这条规则会生效,实现仅所有者可读取的限制。
内容的提问来源于stack exchange,提问作者venom
相关产品推荐
相关产品推荐

