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,