

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
<a name="user-pool-lambda-verify-auth-challenge-response"></a>

O acionador do desafio verify auth é uma função do Lambda que compara a resposta fornecida pelo usuário com uma resposta conhecida. Essa função informa ao seu grupo de usuários se o usuário respondeu ao desafio corretamente. Quando o gatilho do desafio verify auth responde com um `answerCorrect` of`true`, a sequência de autenticação pode continuar.

![\[Acionadores do Lambda de desafio\]](http://docs.aws.amazon.com/pt_br/cognito/latest/developerguide/images/lambda-challenges3.png)


**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](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#amazon-cognito-user-pools-custom-authentication-flow) 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.

**Topics**
+ [Parâmetros do acionador do Lambda de verificar desafio de autenticação](#cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge)
+ [Exemplo de resposta de verificar desafio de autenticação](#aws-lambda-triggers-verify-auth-challenge-response-example)

## Parâmetros do acionador do Lambda de verificar desafio de autenticação
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge"></a>

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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-working-with-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-shared) 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
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-request"></a>

**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 passar esses dados para sua função Lambda, use o ClientMetadata parâmetro nas operações [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)e da [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)API. O Amazon Cognito não inclui dados do ClientMetadata parâmetro [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)e operações de [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API na solicitação que ele passa para a função de desafio de verificação de autenticação.

### Parâmetros de resposta de verificar desafio de autenticação
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-response"></a>

**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
<a name="aws-lambda-triggers-verify-auth-challenge-response-example"></a>

A função de verificação do desafio de autorização confere se a resposta do usuário a um desafio corresponde à resposta esperada. A resposta do usuário é definida pela entrada da sua aplicação, e a resposta preferencial é definida por `privateChallengeParameters.answer` na resposta da [resposta do acionador criar desafio de autenticação](user-pool-lambda-create-auth-challenge.md#aws-lambda-triggers-create-auth-challenge-example). Tanto a resposta correta quanto a resposta dada fazem parte do evento de entrada para essa função.

Neste exemplo, 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 };
```

------