【问题标题】:AWS amplify cognito usersAWS 扩大认知用户
【发布时间】:2019-12-25 14:07:42
【问题描述】:

有什么方法可以将用户从 cognito 传播到 aws amplify api?我对该应用程序的主要目标是允许其他 cognito 用户访问 Todo(由普通 cognito 用户创建)。

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

在对放大文档进行一些研究后,我有两种方法: 1 - 使用 lambda 触发器使用来自 graphql 的突变创建模型 User。对于这种方法,我不相信我可以通过身份验证访问 lambda 触发器上的 api 服务; 2 - 一旦用户登录,我将拥有一个组件(例如 REACT 组件,它将调用一个服务,该服务(1)将检查用户是否存在,(2)如果不存在则创建新用户。这种方法似乎是有点奇怪,因为我们将有两个事实来源。

【问题讨论】:

    标签: javascript reactjs aws-amplify


    【解决方案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”指令,但对我来说,它似乎可以根据您的需要进一步细化。

    【讨论】:

    • 首先感谢您的回答!真的很有帮助。我也看到了那个文档。但是,应用程序的要求之一是具有有关哪个用户创建了该项目以及哪些成员属于该项目的信息。后一部分对我来说是最成问题的,因为我没有看到亚马逊提供任何解决此类问题的解决方案。或者至少,我找不到任何支持该启发式的文档或代码。
    猜你喜欢
    • 2017-10-09
    • 2017-10-27
    • 2021-06-23
    • 2020-06-09
    • 2020-09-21
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    相关资源
    最近更新 更多