背景
大家好。首先,我正在学习 AWS Amplify / GraphQL,所以我不确定这是否是 GraphQL 特定的问题,或者它是否与 AWS Cognito 相关。也就是说,如果这个问题被认为是题外话,请引导我到一个更合适的地方问这个问题。
问题
使用 AWS Amplify 和 AWS Cognito,我希望 GraphQL 层仅响应特定于该实体的数据。举个例子:
给定一个组织和用户数据库结构,使得许多用户属于一个组织,我如何确保用户只能与特定于其所属组织的数据进行交互?
更详细的例子
鉴于下图,我如何确保user #2
在查询 AWS Amplify GraphQL 层时,他们永远无法与organization #1
的数据进行交互?
我试过的
目前,在 GraphQL 层中,我WHERE
为每个查询手动添加了一个子句,这样客户端就无法查看跨组织数据。但是,这不会阻止任何用户创建自己的查询来查看跨组织数据。我目前正在考虑构建一个自定义授权解析器,但它似乎还不符合我的特定需求。
任何帮助是极大的赞赏。