【问题标题】:Using manually created Cognito User Pool with an amplify project将手动创建的 Cognito 用户池与放大项目一起使用
【发布时间】:2020-08-21 16:44:00
【问题描述】:

在将 AWS Amplify 添加到 React 项目时,我正在尝试使用我现有的 Cognito 用户池。

因此,我想为我手动创建的 Cognito 用户池中的现有用户使用 Amplify Datastore 功能。另外,我喜欢用于管理 API 的 GraphQL 模式的 Amplify CLI 功能,因此,这意味着我需要在我的 react 项目中初始化 amplify 项目。

我从这一章开始https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js。但本章使用 API Key 认证。

我知道,我可以通过amplify auth add 向放大项目添加身份验证,但它没有使用现有用户池的选项。

我可以使用我的用户池,而无需通过 amplify init 初始化放大项目 - 使用手动组合的 aws-exports.json。但正如我所指出的,我还需要为 API 添加放大项目。

我会结合配置,比如Amplify.configure({...aws_config_by_amplify, ...my_aws_config}),但目前还不清楚如何使用我的用户池管理放大 api 身份验证。

理想情况下,使用一些命令来放大现有用户池的项目配置会很棒,但我还没有找到。

另外,我认为可以在放大项目的 cloudformation 模板/参数中进行一些手动更改,并使用它来更新堆栈,但不幸的是,我不太擅长 CloudFormation。

如何解决?

【问题讨论】:

    标签: amazon-cloudformation aws-amplify aws-appsync amplifyjs aws-amplify-cli


    【解决方案1】:

    解决方案在这里找到:https://github.com/aws-amplify/amplify-cli/issues/779

    1. 初始化放大项目amplify init
    2. 通过选择 GraphQL 添加 API amplify add api
    3. 更新ampilfy/backend/api/backend-config.json,将defaultAuthentication改为
              "defaultAuthentication": {
                "authenticationType": "AMAZON_COGNITO_USER_POOLS"
              }
    
    1. 更新ampilfy/backend/api/amplifyDatasource/parameters.json:
    {
        "AppSyncApiName": "amplifyDatasource",
        "DynamoDBBillingMode": "PAY_PER_REQUEST",
        "DynamoDBEnableServerSideEncryption": "false",
        "authRoleName": {
            "Ref": "AuthRoleName"
        },
        "unauthRoleName": {
            "Ref": "UnauthRoleName"
        },
        "AuthCognitoUserPoolId": "<USERPOOL ID>"
    }
    

    (我不确定是否需要 authRoleNameunauthRoleName

    1. amplify push,瞧,Appsync 将用户池作为默认身份验证。

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 2018-07-27
      • 2019-11-20
      • 2017-12-03
      • 1970-01-01
      • 2018-01-18
      • 2019-09-04
      • 2016-09-26
      • 1970-01-01
      相关资源
      最近更新 更多