Trigger Lambda di post-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 post-autenticazione

Il trigger di post-autenticazione non modifica il flusso di autenticazione per un utente. Amazon Cognito richiama questa Lambda dopo che l'autenticazione è completa e un utente ha ricevuto i token. Aggiungi un trigger di post-autenticazione quando desideri aggiungere una post-elaborazione personalizzata degli eventi di autenticazione, ad esempio la registrazione o le modifiche del profilo utente che si rifletteranno all'accesso successivo.

Panoramica sul flusso dell'autenticazione

Trigger Lambda di post-autenticazione - Flusso client

Per ulteriori informazioni, consulta Flusso di autenticazione del bacino d'utenza.

Parametri del trigger Lambda di post 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", . . . }, "newDeviceUsed": boolean, "clientMetadata": { "string": "string", . . . } }, "response": {} }

Parametri di richiesta di post autenticazione

newDeviceUsed

Questo contrassegno indica se l'utente ha effettuato l'accesso da un nuovo dispositivo. Amazon Cognito imposta questo contrassegno solo se il valore dei dispositivi memorizzati del bacino d'utenza è impostato su Always o User Opt-In.

userAttributes

Una o più coppie nome-valore che rappresentano gli attributi utente.

clientMetadata

Una o più coppie chiave-valore che è possibile fornire come input personalizzato alla funzione Lambda specificata per il trigger di post-autenticazione. Per passare questi dati alla funzione Lambda, puoi utilizzare il ClientMetadata parametro nelle azioni AdminRespondToAuthChallengeand RespondToAuthChallengeAPI. Amazon Cognito non include i dati del ClientMetadata parametro AdminInitiateAuthe InitiateAuthAPIle operazioni nella richiesta che passa alla funzione di post-autenticazione.

Parametri di risposta di post autenticazione

Amazon Cognito non prevede di restituire ulteriori informazioni nella risposta. La tua funzione può utilizzare API le operazioni per interrogare e modificare le tue risorse o registrare i metadati degli eventi su un sistema esterno.

Tutorial sull'autenticazione

L'approvazione dell'accesso di un utente da parte di Amazon Cognito attiva la funzione Lambda di post-autenticazione. Guarda questi tutorial di accesso per Android JavaScript e iOS.

Piattaforma Tutorial
JavaScript Identità SDK Accedi agli utenti con JavaScript
Identità Android SDK Accesso degli utenti con Android
Identità iOS SDK Accesso degli utenti con iOS

Esempio di post autenticazione

Questo esempio di funzione Lambda di post-autenticazione invia i dati di un accesso riuscito a Logs. CloudWatch

Node.js
const handler = async (event) => { // Send post authentication data to Amazon CloudWatch logs console.log("Authentication successful"); console.log("Trigger function =", event.triggerSource); console.log("User pool = ", event.userPoolId); console.log("App client ID = ", event.callerContext.clientId); console.log("User ID = ", event.userName); return event; }; export { handler };
Python
import os def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

Amazon Cognito trasferisce informazioni sugli eventi alla funzione Lambda. La funzione quindi restituisce a Amazon Cognito lo stesso oggetto evento con eventuali modifiche nella risposta. Nella console Lambda puoi configurare un evento di test con i dati pertinenti al trigger Lambda. Di seguito è riportato un evento di test per questo esempio di codice:

JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }