我已经为我的 GraphQL 查询和突变实现了 AWS Lambda 授权层,这样用户只能在特定 DynamoDB 表项中读取/写入数据,前提是他们是该项目所属组的成员,使用 groupId 分区实现key 和 itemId 的排序键。这样表就可以有许多具有共同 groupId 的 itemId,也可以有许多不同的 groupId。这一切都按预期工作。
现在我希望能够将此组授权扩展到我的实时 GraphQL 订阅。我观察到未参数化的订阅向所有用户广播。我需要一个限制订阅事件的解决方案,以便所有组成员和只有组成员接收订阅事件,以便对包含相应 groupID 键的表数据进行突变。作为许多组的成员的用户将收到他们所属的所有组的订阅事件。
组和组成员是动态的,通过应用程序业务逻辑创建组和添加成员。
我观察了多种 AWS 授权技术,包括静态的和动态的。我已经看到参数化订阅和订阅解析器的示例,它们仅针对一项订阅,但我看不到任何符合我特定“多组”需求的东西。
我正在使用 AWS Amplify API 进行客户端 GraphQL 调用。我观察到 Apollo 有一个 subscribeToMore() 可能对这种情况有所帮助,但我目前更愿意远离我需要的返工,以使我的 UI 适合 Apollo 2 的 Render Props 模式。
有什么想法吗?