Использование созданного вручную пула пользователей Cognito с проектом расширения - PullRequest
1 голос
/ 06 мая 2020

Я пытаюсь использовать свой существующий пул пользователей Cognito при добавлении AWS Amplify в проект реакции.

В результате я хочу использовать функциональность Amplify Datastore для существующих пользователей в моем созданном вручную Cognito User Бассейн. Кроме того, мне нравится функциональность Amplify CLI для управления схемой GraphQL для API, поэтому это означает, что мне нужно инициализировать проект ampify внутри моего проекта реакции.

Я начал с этой главы https://docs.amplify.aws/lib/datastore/getting-started/q/platform/js. Но в этой главе используется аутентификация с помощью ключа API.

Я знаю, что могу добавить аутентификацию в проект расширения с помощью amplify auth add, но у него нет возможности использовать существующий пул пользователей.

Я могу использовать мой пул пользователей без инициализации проекта ampify с помощью amplify init - используя вручную составленный aws-exports.json. Но, как я уже указывал, мне также нужно добавить проект ampify для API.

Я бы объединил конфигурации, что-то вроде Amplify.configure({...aws_config_by_amplify, ...my_aws_config}), но до сих пор неясно, как тогда управлять аутентификацией с усилением api с моим пулом пользователей.

В идеале было бы здорово использовать какую-то команду для усиления конфигурации проекта с существующим пулом пользователей, но я не нашел ее.

Кроме того, я полагаю, что можно внести некоторые изменения вручную в усиление шаблон / параметры облачной информации проекта и обновить стек этим, но, к сожалению, я не очень хорош в использовании CloudFormation.

Как решить эту проблему?

1 Ответ

0 голосов
/ 08 мая 2020

Решение было найдено здесь: https://github.com/aws-amplify/amplify-cli/issues/779

  1. Инициализировать проект усиления amplify init
  2. Добавить API amplify add api с выбором GraphQL
  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>"
}

(я не уверен, что необходимы authRoleName и unauthRoleName)

amplify push, и вуаля, Appsyn c будет использовать пул пользователей в качестве аутентификации по умолчанию.
...