Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

287
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda