Trigger Lambda di una verifica di risposta di una richiesta di autenticazione - Amazon Cognito

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trigger Lambda di una verifica di risposta di una richiesta di autenticazione

Trigger Lambda di richieste
Verifica della risposta a una richiesta di autenticazione

Amazon Cognito richiama questo trigger per verificare se la risposta dell'utente finale per una richiesta di autenticazione personalizzata è valida o meno. Fa parte di un flusso di autenticazione personalizzato di un bacino d'utenza.

La richiesta per questo trigger include il privateChallengeParameters e la challengeAnswer. II trigger Lambda di creazione di una richiesta di autenticazione restituisce valori privateChallengeParameters e include la risposta prevista fornita dall'utente. Il parametro challengeAnswer contiene la risposta dell'utente per la sfida.

La risposta contiene l'attributo answerCorrect. Se l'utente completa correttamente la sfida, Amazon Cognito imposta il valore dell'attributo su true. Se l'utente non completa correttamente la sfida, Amazon Cognito imposta il valore su false.

Il loop di sfide si ripete finché gli utenti non rispondono a tutte le sfide.

Parametri del trigger Lambda della verifica di una richiesta di autenticazione

La richiesta passata da Amazon Cognito a questa funzione Lambda è una combinazione dei parametri seguenti e dei parametri comuni aggiunti da Amazon Cognito a tutte le richieste.

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

Parametri di richiesta di verifica sfida di autenticazione

userAttributes

Questo parametro contiene una o più coppie nome-valore che rappresentano gli attributi dell'utente.

userNotFound

Quando Amazon Cognito imposta PreventUserExistenceErrors su ENABLED per il tuo client del bacino d'utenza, Amazon Cognito popola questo valore booleano.

publicChallengeParameters

Questo parametro proviene dal trigger Creazione di una richiesta di autenticazione. Per determinare se l'utente ha superato una sfida, Amazon Cognito confronta i parametri con quelli della challengeAnswer di un utente.

Questo parametro contiene tutte le informazioni necessarie per convalidare la risposta dell'utente alla sfida. Tali informazioni includono la domanda che Amazon Cognito pone all'utente (publicChallengeParameters) e le risposte valide per la domanda (privateChallengeParameters). Questo parametro viene utilizzato solo dal trigger Lambda di verifica della risposta di una richiesta di autenticazione.

challengeAnswer

Il valore di questo parametro è la risposta dell'utente alla sfida.

clientMetadata

Una o più coppie chiave-valore che è possibile fornire come input personalizzato alla funzione Lambda specificata per il trigger di verifica di una richiesta di autenticazione. Per trasmettere questi dati alla funzione Lambda, utilizza il parametro ClientMetadata nelle operazioni API AdminRespondToAuthChallenge e RespondToAuthChallenge. Quando Amazon Cognito trasmette la richiesta alla funzione di pre-generazione di token, non include dati del parametro ClientMetadata contenuti nelle operazioni API AdminInitiateAuth e InitiateAuth.

Parametri di risposta di verifica sfida di autenticazione

answerCorrect

Se l'utente completa correttamente la sfida, Amazon Cognito imposta questo parametro su true. Se l'utente non completa correttamente la sfida, Amazon Cognito imposta il parametro su false.

Verifica di un esempio di risposta di una richiesta di autenticazione

In questo esempio, la funzione Lambda verifica se la risposta dell'utente a una richiesta corrisponde alla risposta prevista. Se la risposta dell'utente corrisponde alla risposta prevista, il parametro answerCorrect è impostato su 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 };