

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 pós-autenticação
<a name="user-pool-lambda-post-authentication"></a>

O acionador post authentication não altera o fluxo de autenticação de um usuário. O Amazon Cognito invoca esse Lambda após a conclusão da autenticação, antes que o usuário receba os tokens. Adicione um acionador post authentication quando quiser adicionar um pós-processamento personalizado de eventos de autenticação, por exemplo, registros ou ajustes de perfil de usuário que serão refletidos no próximo login.

Um Lambda post authentication que não retorna o corpo da solicitação ao Amazon Cognito ainda pode gerar falha na autenticação. Para obter mais informações, consulte [O que é importante saber sobre acionadores do Lambda](cognito-user-pools-working-with-lambda-triggers.md#important-lambda-considerations).

**Topics**
+ [Visão geral do fluxo de autenticação](#user-pool-lambda-post-authentication-1)
+ [Parâmetros do acionador do Lambda de pós-autenticação](#cognito-user-pools-lambda-trigger-syntax-post-auth)
+ [Exemplo de pós-autenticação](#aws-lambda-triggers-post-authentication-example)

## Visão geral do fluxo de autenticação
<a name="user-pool-lambda-post-authentication-1"></a>

![\[Fluxo do Lambda de pós-autenticação: fluxo do cliente\]](http://docs.aws.amazon.com/pt_br/cognito/latest/developerguide/images/lambda-post-authentication-1.png)


Para obter mais informações, consulte [Um exemplo de sessão de autenticação](authentication.md#amazon-cognito-user-pools-authentication-flow).

## Parâmetros do acionador do Lambda de pós-autenticação
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth"></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",
             . . .
         },
         "newDeviceUsed": boolean,
         "clientMetadata": {
             "string": "string",
             . . .
            }
        },
    "response": {}
}
```

------

### Parâmetros de solicitação de pós-autenticação
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-request"></a>

**newDeviceUsed**  
Esse sinalizador indica se o usuário fez login em um novo dispositivo. O Amazon Cognito só definirá esse sinalizador se o valor dos dispositivos memorizados do grupo de usuários for `Always` ou `User Opt-In`.

**userAttributes**  
Um ou mais pares de nome-valor que representam atributos de usuário.

**clientMetadata**  
Um ou mais pares de chave-valor que você pode fornecer como entrada personalizada para a função Lambda especificada para o acionador de pós-autenticação. Para passar esses dados para sua função Lambda, você pode usar o ClientMetadata parâmetro nas açõ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 pós-autenticação.

### Parâmetros de resposta de pós-autenticação
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-response"></a>

O Amazon Cognito não espera nenhuma outra informação de retorno na resposta. Sua função pode usar operações de API para consultar e modificar seus recursos ou registrar metadados de eventos em um sistema externo.

## Exemplo de pós-autenticação
<a name="aws-lambda-triggers-post-authentication-example"></a>

Este exemplo de função Lambda de pós-autenticação envia dados de um login bem-sucedido para o 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
```

------

O Amazon Cognito transmite informações de evento para a função do Lambda. A função retorna o mesmo objeto de evento para o Amazon Cognito, com as alterações na resposta. No console do Lambda, você pode configurar um evento de teste com dados relevantes para o acionador do Lambda. A seguir, é mostrado um evento de teste para esse exemplo de código:

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

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

------