

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Posting otentikasi pemicu Lambda
<a name="user-pool-lambda-post-authentication"></a>

Pemicu otentikasi pos tidak mengubah alur otentikasi untuk pengguna. Amazon Cognito memanggil Lambda ini setelah otentikasi selesai, sebelum pengguna menerima token. Tambahkan pemicu otentikasi pos saat Anda ingin menambahkan peristiwa otentikasi pasca-pemrosesan khusus, misalnya pencatatan atau penyesuaian profil pengguna yang akan tercermin pada proses masuk berikutnya.

Lambda otentikasi pos yang tidak mengembalikan badan permintaan ke Amazon Cognito masih dapat menyebabkan otentikasi gagal diselesaikan. Untuk informasi selengkapnya, lihat [Hal-hal yang perlu diketahui tentang pemicu Lambda](cognito-user-pools-working-with-lambda-triggers.md#important-lambda-considerations).

**Topics**
+ [Ikhtisar aliran otentikasi](#user-pool-lambda-post-authentication-1)
+ [Posting otentikasi parameter pemicu Lambda](#cognito-user-pools-lambda-trigger-syntax-post-auth)
+ [Contoh otentikasi posting](#aws-lambda-triggers-post-authentication-example)

## Ikhtisar aliran otentikasi
<a name="user-pool-lambda-post-authentication-1"></a>

![\[Pemicu Lambda pasca autentikasi - alur klien\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/lambda-post-authentication-1.png)


Untuk informasi selengkapnya, lihat [Contoh sesi otentikasi](authentication.md#amazon-cognito-user-pools-authentication-flow).

## Posting otentikasi parameter pemicu Lambda
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth"></a>

Permintaan yang diteruskan Amazon Cognito ke fungsi Lambda ini adalah kombinasi dari parameter di bawah ini dan parameter [umum yang ditambahkan Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-working-with-lambda-triggers.html#cognito-user-pools-lambda-trigger-syntax-shared) Cognito ke semua permintaan.

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

```
{
    "request": {
        "userAttributes": {
             "string": "string",
             . . .
         },
         "newDeviceUsed": boolean,
         "clientMetadata": {
             "string": "string",
             . . .
            }
        },
    "response": {}
}
```

------

### Parameter permintaan otentikasi posting
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-request"></a>

**newDeviceUsed**  
Bendera ini menunjukkan jika pengguna telah masuk pada perangkat baru. Amazon Cognito hanya menetapkan tanda ini jika nilai perangkat yang diingat dari kumpulan pengguna adalah `Always` atau. `User Opt-In`

**userAttributes**  
Satu atau lebih pasangan nilai-nama yang mewakili atribut pengguna.

**clientMetadata**  
Satu atau lebih pasangan nilai-kunci yang dapat Anda berikan sebagai masukan kustom ke fungsi Lambda yang Anda tentukan untuk pemicu pasca autentikasi. Untuk meneruskan data ini ke fungsi Lambda Anda, Anda dapat menggunakan ClientMetadata parameter dalam tindakan [AdminRespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminRespondToAuthChallenge.html)dan [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)API. Amazon Cognito tidak menyertakan data dari ClientMetadata parameter dalam [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)dan operasi [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API dalam permintaan yang diteruskan ke fungsi otentikasi pos.

### Parameter respons otentikasi posting
<a name="cognito-user-pools-lambda-trigger-syntax-post-auth-response"></a>

Amazon Cognito tidak mengharapkan informasi pengembalian tambahan dalam tanggapan. Fungsi Anda dapat menggunakan operasi API untuk menanyakan dan memodifikasi sumber daya Anda, atau merekam metadata peristiwa ke sistem eksternal.

## Contoh otentikasi posting
<a name="aws-lambda-triggers-post-authentication-example"></a>

Contoh otentikasi posting ini fungsi Lambda mengirimkan data dari login CloudWatch yang berhasil ke Log.

------
#### [ 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 meneruskan informasi peristiwa ke fungsi Lambda Anda. Fungsi kemudian mengembalikan objek acara yang sama ke Amazon Cognito, dengan perubahan apa pun dalam respons. Di konsol Lambda, Anda dapat mengatur peristiwa pengujian dengan data yang relevan dengan pemicu Lambda Anda. Berikut ini adalah peristiwa pengujian untuk sampel kode ini:

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

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

------