Я хотел бы использовать значение "sub" в Cognito для создания записи Dynamodb через лямбда-триггер - PullRequest
1 голос
/ 25 июня 2019

Я использую aws cognito для аутентификации пользователя, но хотел бы, чтобы пользовательская таблица dynamicodb содержала больше пользовательских атрибутов приложения, для которых cognito не предназначен.

Я хочу связать cognito и DynamobD вместе через уникальный идентификатор. Cognito устанавливает значение «sub» в качестве уникального идентификатора после подтверждения пользователя (с помощью триггера предварительной регистрации), но я не уверен, как зафиксировать это значение в лямбда-триггере пост-подтверждения для добавления в Dynamobd. По-видимому, он предоставляется только для полезной нагрузки токена аутентификации. Я лучше всего запрашиваю токен аутентификации в моем лямбда-триггере подтверждения сообщения? Я не уверен, что это можно сделать с помощью Python. Я очень новичок во всем этом.

То, что я пытаюсь сделать одним махом:

  1. Реестры пользователей - запрос к cognito
  2. Предварительные наборы лямбда-триггеров Подтверждено = Истина
  3. Пользователь добавлен в Cognito
  4. После подтверждения лямбда-триггер добавляет пользователя к DynamodB с помощью «sub» uuid в качестве первичного ключа.

Спасибо.

1 Ответ

0 голосов
/ 26 июня 2019

Согласно этому ответу , объект события для лямбда-подтверждения после записи будет выглядеть следующим образом:

{
    "version": "1",
    "region": "eu-central-1",
    "userPoolId": "eu-central-1_45YtlkflA",
    "userName": "user4",
    "callerContext": {
        "awsSdkVersion": "aws-sdk-java-console",
        "clientId": "4736lckau64in48dku3rta0eqa"
    },
    "triggerSource": "PostConfirmation_ConfirmSignUp",
    "request": {
        "userAttributes": {
            "sub": "a2c21839-f9fc-49e3-be9a-16f5823d6705",
            "cognito:user_status": "CONFIRMED",
            "email_verified": "true",
            "email": "asdfsdfsgdfg@carbtc.net"
        }
    },
    "response": {}
}

Похоже, вы должны быть в состоянии захватить sub с request.userAttributes. userName может быть другим хорошим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...