有什么方法可以将用户从Cognito传播到AWS Amplify API?我对此应用程序的主要目标是允许其他认知用户访问Todo
(由普通的认知用户创建)。
默认情况下,我将仅是有权访问此Todo
的人。最终,我将被允许在此待办事项中添加“成员”。
经过对放大文档的研究,我有两种方法:
1-使用lambda触发器使用来自graphql的突变来创建模型User
。对于这种方法,我认为我无法通过身份验证通过lambda触发器访问api服务;
2-用户登录后,我将立即拥有一个组件(例如REACT组件),该组件将调用一项服务,该服务(1)将检查用户是否存在,以及(2)创建新用户(如果不存在)。有点奇怪,因为我们将有两个真相。
答案 0 :(得分:1)
如果您将Amazon Cognito与AWS AppSync和DynamoDB结合使用,那么我相信“ Amplify”命令行中的“ GraphQL” API应该可以解决问题。
在模型架构中,您可以生成具有不同所有权规则的字段:
type Draft
@model
@auth(rules: [
# Defaults to use the "owner" field.
{ allow: owner },
# Authorize the update mutation and both queries. Use `queries: null` to disable auth for queries.
{ allow: owner, ownerField: "editors", operations: [update] }
]) {
id: ID!
title: String!
content: String
owner: String
editors: [String]!
}
以下是完整的文档:https://aws-amplify.github.io/docs/cli-toolchain/graphql
我仍然没有使用“ auth”指令,但是对我来说,它可以进一步完善以适应您的需求。