gpt4 book ai didi

aws-cloudformation - 将手动创建的 Cognito 用户池与 amplify 项目结合使用

转载 作者:行者123 更新时间:2023-12-05 05:03:28 24 4
gpt4 key购买 nike

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

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

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

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

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

我会组合配置,例如 Amplify.configure({...aws_config_by_amplify, ...my_aws_config}),但仍然不清楚如何使用我的用户池管理 amplify api 身份验证。

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

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

如何解决这个问题?

最佳答案

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

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

    (我不确定是否需要 authRoleNameunauthRoleName)

  • 放大推送,瞧,Appsync 将使用用户池作为默认身份验证。
  • 关于aws-cloudformation - 将手动创建的 Cognito 用户池与 amplify 项目结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61639967/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com