Acionador do Lambda de verificar resposta do desafio de autenticação - Amazon Cognito

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acionador do Lambda de verificar resposta do desafio de autenticação


            Acionadores do Lambda de desafio
Verificar a resposta do desafio de autenticação

O Amazon Cognito invoca esse acionador para verificar se a resposta do usuário a um desafio de autenticação personalizado é válida ou não. Ele faz parte de um fluxo de autenticação personalizado do grupo de usuários.

A solicitação deste trigger contém os parâmetros privateChallengeParameters e challengeAnswer. O acionador do Lambda de criação de desafio de autenticação retorna valores privateChallengeParameters e contém a resposta esperada do usuário. O parâmetro challengeAnswer contém a resposta do usuário para o desafio.

A resposta contém o atributo answerCorrect. Se o usuário concluir o desafio com êxito, o Amazon Cognito definirá o valor do atributo como true. Se o usuário não concluir o desafio com êxito, o Amazon Cognito definirá o valor como false.

O loop de desafios se repetirá até que o usuário responda a todos os desafios.

Parâmetros do acionador do Lambda de verificar desafio de autenticação

A solicitação que o Amazon Cognito transmite para essa função do Lambda é uma combinação dos parâmetros abaixo e dos parâmetros comuns que o Amazon Cognito adiciona a todas as solicitações.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeAnswer": "string", "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "answerCorrect": boolean } }

Parâmetros de solicitação de verificar desafio de autenticação

userAttributes

Esse parâmetro contém um ou mais pares de nome-valor que representam atributos de usuário.

userNotFound

Quando o Amazon Cognito define PreventUserExistenceErrors como ENABLED para o cliente de grupo de usuários, ele preenche esse booleano.

privateChallengeParameters

Esse parâmetro vem do acionador de criação de desafio de autenticação. Para determinar se o usuário passou em um desafio, o Amazon Cognito compara os parâmetros com challengeAnswer do usuário.

Esse parâmetro contém todas as informações necessárias para validar a resposta do usuário para o desafio. Essas informações incluem a pergunta que o Amazon Cognito apresenta ao usuário (publicChallengeParameters) e as respostas válidas para a pergunta (privateChallengeParameters). Somente o acionador do Lambda de verificação da resposta do desafio de autenticação usa esse parâmetro.

challengeAnswer

Esse valor de parâmetro é a resposta do usuário para o desafio.

clientMetadata

Esse parâmetro contém um ou mais pares de chave-valor que você pode fornecer como entrada personalizada à função do Lambda para o acionador de verificação do desafio de autenticação. Para transmitir esses dados para sua função do Lambda, use o parâmetro ClientMetadata nas operações de API AdminRespondToAuthChallenge e RespondToAuthChallenge. O Amazon Cognito não inclui dados do parâmetro ClientMetadata nas operações AdminInitiateAuth e InitiateAuth da API na solicitação que ele transmite para a função de desafio de verificação de autenticação.

Parâmetros de resposta de verificar desafio de autenticação

answerCorrect

Se o usuário concluir o desafio com êxito, o Amazon Cognito definirá esse parâmetro como true. Se o usuário não concluir o desafio com êxito, o Amazon Cognito definirá o parâmetro como false.

Exemplo de resposta de verificar desafio de autenticação

Nesse exemplo, a função Lambda verifica se a resposta do usuário a um desafio corresponde à resposta esperada. Se a resposta do usuário corresponder à resposta esperada, o Amazon Cognito definirá o parâmetro answerCorrect como true.

Node.js
const handler = async (event) => { if ( event.request.privateChallengeParameters.answer == event.request.challengeAnswer ) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } return event; }; export { handler };