

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
<a name="user-pool-lambda-post-authentication"></a>

Il trigger di post-autenticazione non modifica il flusso di autenticazione per un utente. Amazon Cognito richiama questa Lambda dopo il completamento dell'autenticazione, prima che un utente abbia 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 al successivo accesso.

Una Lambda dopo l'autenticazione che non restituisce il corpo della richiesta ad Amazon Cognito può comunque causare il mancato completamento dell'autenticazione. Per ulteriori informazioni, consulta [Cose da sapere sui trigger Lambda](cognito-user-pools-working-with-lambda-triggers.md#important-lambda-considerations).

**Topics**
+ [Panoramica sul flusso dell'autenticazione](#user-pool-lambda-post-authentication-1)
+ [Parametri del trigger Lambda di post autenticazione](#cognito-user-pools-lambda-trigger-syntax-post-auth)
+ [Esempio di post autenticazione](#aws-lambda-triggers-post-authentication-example)

## Panoramica sul flusso dell'autenticazione
<a name="user-pool-lambda-post-authentication-1"></a>

![\[Trigger Lambda di post-autenticazione - Flusso client\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/lambda-post-authentication-1.png)


Per ulteriori informazioni, consulta [Un esempio di sessione di autenticazione](authentication.md#amazon-cognito-user-pools-authentication-flow).

## Parametri del trigger Lambda di post autenticazione
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth"></a>

La richiesta passata da Amazon Cognito a questa funzione Lambda è una combinazione dei parametri seguenti e dei [parametri comuni](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-working-with-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-shared) 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
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-request"></a>

**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 [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)e [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)API. Amazon Cognito non include i dati del ClientMetadata parametro [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)e le operazioni [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API nella richiesta che passa alla funzione di post-autenticazione.

### Parametri di risposta di post autenticazione
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-response"></a>

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

## Esempio di post autenticazione
<a name="aws-lambda-triggers-post-authentication-example"></a>

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": {}
}
```

------