0
respostas

lambda function não recebe valor em cognitoAuthenticationProvider

Oi pessoal, Tive outro problema ao tentar adquirir cognitoAuthenticationProvider do objeto identity, para sim pegar o id do usuário autenticado e adicionar nos métodos CRUD do dynamoDB. O objeto me retornava cognitoAuthenticationProvider: null:

identity: {
    cognitoIdentityPoolId: null,
    accountId: null,
    cognitoIdentityId: null,
    caller: null,
    sourceIp: '152.254.244.12',
    principalOrgId: null,
    accessKey: null,
    cognitoAuthenticationType: null,
    cognitoAuthenticationProvider: null,
    userArn: null,
    userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0',
    user: null
  }

Isso gerava um erro 500 na minha função. Depois de algumas pesquisas, encontrei esse tópico no stackoverflow que instrui a utilizar o objeto da propriedade "auhtorizer"

authorizer: {
    claims: {
      sub: 'f6a99065-3f16-4380-8d02-b3e571aad2ca',
      email_verified: 'false',
      iss: 'https://cognito-idp.us-east-2.amazonaws.com/us-east-2_dxy0x5xCn',
      'cognito:username': 'f6a99065-3f16-4380-8d02-b3e571aad2ca',
      origin_jti: '5c44ecb9-8495-45bb-879f-f4c66559c8d2',
      aud: '7eec2kc5a1c4jimiqmch6fuqf9',
      event_id: '36646332-2027-47fb-a404-6c4425b7ba1e',
      token_use: 'id',
      auth_time: '1648050580',
      name: 'Luis Felipe Ribeiro',
      exp: 'Wed Mar 23 16:49:40 UTC 2022',
      iat: 'Wed Mar 23 15:49:40 UTC 2022',
      jti: '9e9e8a67-5870-455b-b7d8-13891d53b273',
      email: 'lfsouza.ribeito@gmail.com'
    }
  }

sendo assim, em cada função do CRUD eu adicionei a variável usuario_id:

const usuario_id = event.requestContext.authorizer.claims['cognito:username'];

e passava direto como parâmetro para o dynamoDB.

Continuo sem entender o porquê funcionou com o professor e pra mim não. Será que tem relação com esse tópico: https://cursos.alura.com.br/forum/topico-401-unauthorized-retorno-ao-consumir-api-get-do-amplify-209044

Abraços,