

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Desencadenador de Lambda para verificar la respuesta al desafío de autenticación
<a name="user-pool-lambda-verify-auth-challenge-response"></a>

El desencadenador de verificación del desafío de autenticación es una función de Lambda que compara la respuesta proporcionada por el usuario con una respuesta conocida. Esta función indica al grupo de usuarios si el usuario ha respondido correctamente al desafío. Cuando el desencadenador de verificación del desafío de autenticación responde `true` a `answerCorrect`, la secuencia de autenticación puede continuar.

![\[Desencadenadores de Lambda de desafío\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/lambda-challenges3.png)


**Verificación de la respuesta a los desafíos de autenticación**  
Amazon Cognito lama a este desencadenador para verificar si la respuesta del usuario a un desafío de autenticación personalizado es o no válida. Forma parte del [flujo de autenticación personalizado](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#amazon-cognito-user-pools-custom-authentication-flow) de un grupo de usuarios.

La solicitud de este disparador contiene los parámetros `privateChallengeParameters` y `challengeAnswer`. El desencadenador de Lambda para definir el desafío de autenticación devuelve los valores de `privateChallengeParameters`, que contienen la respuesta esperada del usuario. El parámetro `challengeAnswer` contiene la respuesta del usuario al desafío.

La respuesta contiene el atributo `answerCorrect`. Si el usuario finaliza correctamente el desafío, Amazon Cognito establece el valor del atributo en `true`. Si el usuario no finaliza correctamente el desafío, Amazon Cognito establece el valor del atributo en `false`.

El bucle de desafíos se repite hasta que los usuarios respondan a todos los desafíos.

**Topics**
+ [Parámetros del desencadenador de Lambda para verificar el desafío de autenticación](#cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge)
+ [Ejemplo de verificación de la respuesta a los desafíos de autenticación](#aws-lambda-triggers-verify-auth-challenge-response-example)

## Parámetros del desencadenador de Lambda para verificar el desafío de autenticación
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge"></a>

La solicitud que Amazon Cognito envía a esta función de Lambda es una combinación de los parámetros que se indican a continuación y los [parámetros comunes](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-working-with-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-shared) que Amazon Cognito agrega a todas las solicitudes.

------
#### [ JSON ]

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

------

### Parámetros de la solicitud para verificar desafíos de autenticación
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-request"></a>

**userAttributes**  
Este parámetro contiene uno o varios pares de nombre-valor que representan atributos de usuario.

**userNotFound**  
Cuando Amazon Cognito establece `PreventUserExistenceErrors` en `ENABLED` para su cliente de grupo de usuarios, Amazon Cognito rellena este booleano.

**privateChallengeParameters**  
Este parámetro proviene del desencadenador para definir el desafío de autenticación. Para determinar si el usuario ha superado un desafío, Amazon Cognito compara los parámetros con la **challengeAnswer** de un usuario.  
Este parámetro contiene toda la información necesaria para validar la respuesta del usuario al desafío. Esta información incluye la pregunta que Amazon Cognito presenta al usuario (`publicChallengeParameters`) y las respuestas válidas a la pregunta (`privateChallengeParameters`). Solo el desencadenador de Lambda de verificación de la respuesta al desafío de autenticación utiliza este parámetro. 

**challengeAnswer**  
Este valor de parámetro es la respuesta del usuario al desafío.

**clientMetadata**  
Este parámetro contiene uno o varios pares de clave-valor que puede proporcionar como datos de entrada personalizados a la función de Lambda para verificar el desencadenador del desafío de autenticación. Para pasar estos datos a la función Lambda, utilice el ClientMetadata parámetro en las operaciones [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)y [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)API. Amazon Cognito no incluye datos del ClientMetadata parámetro ni de las operaciones de la [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API en la solicitud que pasa a la función de verificación de autenticación. [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)

### Parámetros de la respuesta para verificar desafíos de autenticación
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-response"></a>

**answerCorrect**  
Si el usuario finaliza correctamente el desafío, Amazon Cognito establece este parámetro en `true`. Si el usuario no finaliza correctamente el desafío, Amazon Cognito establece el parámetro en `false`. 

## Ejemplo de verificación de la respuesta a los desafíos de autenticación
<a name="aws-lambda-triggers-verify-auth-challenge-response-example"></a>

En este ejemplo, la función Verificar desafío de autenticación comprueba si la respuesta del usuario a un desafío coincide con la respuesta esperada. La respuesta del usuario se define en función de las entradas de la aplicación y la respuesta preferida se define por `privateChallengeParameters.answer` en la [respuesta del desencadenador Crear desafío de autenticación](user-pool-lambda-create-auth-challenge.md#aws-lambda-triggers-create-auth-challenge-example). Tanto la respuesta correcta como la respuesta dada forman parte del evento de entrada de esta función.

En este ejemplo, Amazon Cognito establece el parámetro `answerCorrect` en `true` si la respuesta del usuario coincide con la respuesta esperada.

------
#### [ 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 };
```

------