AWS扩大认知用户

时间:2019-08-20 11:06:17

标签: javascript reactjs aws-amplify

有什么方法可以将用户从Cognito传播到AWS Amplify API?我对此应用程序的主要目标是允许其他认知用户访问Todo(由普通的认知用户创建)。

默认情况下,我将仅是有权访问此Todo的人。最终,我将被允许在此待办事项中添加“成员”。

经过对放大文档的研究,我有两种方法: 1-使用lambda触发器使用来自graphql的突变来创建模型User。对于这种方法,我认为我无法通过身份验证通过lambda触发器访问api服务; 2-用户登录后,我将立即拥有一个组件(例如REACT组件),该组件将调用一项服务,该服务(1)将检查用户是否存在,以及(2)创建新用户(如果不存在)。有点奇怪,因为我们将有两个真相。

1 个答案:

答案 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”指令,但是对我来说,它可以进一步完善以适应您的需求。