Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

283
Visualizações
Cómo sincronizar el usuario de AWS Cognito con DynamoDB

Tengo un diseño de arquitectura en el que uso Cognito para la administración de usuarios (correo electrónico, número de teléfono son los únicos atributos) y luego uso DynamoDB para sincronizar también a los usuarios, de modo que pueda hacer que el usuario de AppSync consulte y obtenga información del usuario.

Necesito alguna forma de sincronizar los usuarios de DynamoDB con los usuarios de Cognito. En este momento, tengo un disparador lambda posterior a la confirmación del usuario para ejecutar inserciones en DynamoDB en la confirmación del nuevo usuario para toda la información anterior, PERO:

  • ¿Cómo gestiono que un usuario actualice su correo electrónico/teléfono? Si uso Cognito directamente para esto y luego tiene que confirmar su nuevo número de teléfono/correo electrónico, parece que no hay otro disparador de Lambda que pueda agregar aquí para sincronizar estos nuevos datos con DynamoDB.
  • Si uso DynamoDB a través de Appsync para actualizar el correo electrónico y el teléfono del usuario y luego lo quito a través de una transmisión de DynamoDB a una función lambda para actualizar esta información en Cognito, el usuario aún no ha confirmado estos detalles y, por lo tanto, la información puede no ser válida.

¿Cuál es la arquitectura ideal para mantener sincronizados a Cognito y DynamoDB?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Yo tuve el mismo problema. Guardo el correo electrónico, el nombre de la familia y el nombre dado en cognito como parte del proceso de registro. Luego, los usuarios pueden cambiar cualquiera de estos campos en cualquier momento.

No pude encontrar una forma de realizar un seguimiento de estos cambios, ya que la documentación no indica ningún activador lambda de este tipo para los eventos de sincronización. Sin embargo, dado que el idToken contiene los atributos del usuario en mi caso, debe actualizarse solo después de que el usuario realice un cambio. Así que probé esto y descubrí que el activador Pre-Token se invoca cada vez que hay un cambio en los atributos del usuario para que pueda regenerar un nuevo token. Esa lambda contiene la siguiente carga útil

 { version: '1', triggerSource: 'TokenGeneration_RefreshTokens', region: 'XXX', userPoolId: '', userName: 'XXX', callerContext: { awsSdkVersion: 'aws-sdk-unknown-unknown', clientId: 'XXX' }, request: { userAttributes: { sub: 'XXX', email_verified: 'false', 'cognito:user_status': 'CONFIRMED', 'cognito:email_alias': 'user1@mailinator.com', given_name: 'Name', family_name: 'New', email: 'user1@mailinator.com' }, groupConfiguration: { groupsToOverride: [], iamRolesToOverride: [], preferredRole: null } }, response: { claimsOverrideDetails: null } }

Así que actualizo los registros en dynamodb en este mismo lambda. Sin embargo, no estoy 100% seguro porque la documentación no dice nada sobre este caso de uso y el disparador previo al token. Pruébalo y verás.

Publicado originalmente aquí

over 4 years ago · Santiago Trujillo Relatório

0

Consideraría no sincronizar estos detalles con DynamoDb. Puede consultar Cognito de la misma manera que una base de datos para buscar/obtener usuarios. La forma en que hacemos esto es que usamos el sub de Cognito (el id) para el ID de usuario de DynamoDb para que sea muy fácil obtener datos de DynamoDb para un usuario en particular. La tabla db es más una tabla de información complementaria como la que está utilizando para mantener datos de usuario adicionales. En mi opinión, será mucho más fácil: entonces no necesita lidiar con nada relacionado con los cambios de correo electrónico.

Por ejemplo, tenemos una sincronización de aplicaciones de administrador que se usa para cuenta/usuario. Para encontrar o mutar a un usuario, generalmente usamos un Lambda que llama a los métodos de Cognito .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda