如何防止访问 Amplify graphql 公共 API 中的某些字段
Posted
技术标签:
【中文标题】如何防止访问 Amplify graphql 公共 API 中的某些字段【英文标题】:How to prevent access to certain fields in Amplify graphql public API 【发布时间】:2020-12-10 06:15:48 【问题描述】:我在 Amplify 中有一个 graphql 模型,如下所示:
type Blog @model @auth(rules: [
allow: owner ,
allow: groups, groups: ["admins"] ,
allow: public, provider: apiKey, operations: [read]
])
id: ID!
title: String!
content: String!
author: String
我希望所有字段都可以通过 API 密钥进行读取访问,但“作者”字段除外。它应该只能由所有者和“管理员”组读取。 我已经尝试过各种***和字段级@auth 指令的组合,但它不起作用。 有谁知道如何解决这个问题。 谢谢
【问题讨论】:
我也有类似的问题.. 你在哪里可以弄清楚如何做到这一点? 【参考方案1】:您是否尝试过使用Field Level Authorization?
type User @model
id: ID!
username: String
ssn: String @auth(rules: [ allow: owner, ownerField: "username" ])
更新:我的错误,在你的问题中确实说你试过了。
【讨论】:
以上是关于如何防止访问 Amplify graphql 公共 API 中的某些字段的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amplify AppSync GraphQL @Auth 指令:如何禁止为公共用户列出元素
在 AWS Amplify 中更改我的 GraphQL 架构时如何防止丢失生产数据?
使用 AWS Amplify Auth 和 GraphQL API,您将如何进行一些公共和一些私有查询/突变调用?
如果我有登录用户的访问令牌,如何使用 AWS Amplify GraphQL API?