

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

# Verifikasi respons tantangan Auth Pemicu Lambda
<a name="user-pool-lambda-verify-auth-challenge-response"></a>

Pemicu tantangan verifikasi autentikasi adalah fungsi Lambda yang membandingkan respons yang diberikan pengguna dengan jawaban yang diketahui. Fungsi ini memberi tahu kumpulan pengguna Anda apakah pengguna menjawab tantangan dengan benar. Saat pemicu tantangan verifikasi autentikasi merespons dengan `answerCorrect` of`true`, urutan otentikasi dapat dilanjutkan.

![\[Pemicu Lambda tantangan\]](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/lambda-challenges3.png)


**Memverifikasi respons tantangan autentikasi**  
Amazon Cognito memanggil pemicu ini untuk memverifikasi apakah respons dari pengguna untuk Tantangan Auth khusus valid atau tidak. Ini adalah bagian dari kolam pengguna [alur autentikasi kustom](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html#amazon-cognito-user-pools-custom-authentication-flow).

Permintaan untuk pemicu ini berisi parameter `privateChallengeParameters` dan `challengeAnswer`. Pemicu Create Auth Challenge Lambda `privateChallengeParameters` mengembalikan nilai, dan berisi respons yang diharapkan dari pengguna. Parameter `challengeAnswer` berisi respons pengguna untuk tantangan.

Respons berisi `answerCorrect` atribut. Jika pengguna berhasil menyelesaikan tantangan, Amazon Cognito menetapkan nilai atribut ke. `true` Jika pengguna tidak berhasil menyelesaikan tantangan, Amazon Cognito menetapkan nilainya. `false`

Loop tantangan berulang sampai pengguna menjawab semua tantangan.

**Topics**
+ [Verifikasi parameter pemicu Lambda tantangan Auth](#cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge)
+ [Verifikasi contoh respons tantangan Auth](#aws-lambda-triggers-verify-auth-challenge-response-example)

## Verifikasi parameter pemicu Lambda tantangan Auth
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge"></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",
            . . .
        },
        "privateChallengeParameters": {
            "string": "string",
            . . .
        },
        "challengeAnswer": "string",
        "clientMetadata": {
            "string": "string",
            . . .
        },
        "userNotFound": boolean
    },
    "response": {
        "answerCorrect": boolean
    }
}
```

------

### Verifikasi parameter permintaan tantangan Auth
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-request"></a>

**userAttributes**  
Parameter ini berisi satu atau lebih pasangan nama-nilai yang mewakili atribut pengguna.

**userNotFound**  
Saat Amazon Cognito disetel `PreventUserExistenceErrors` `ENABLED` untuk klien kumpulan pengguna Anda, Amazon Cognito mengisi Boolean ini.

**privateChallengeParameters**  
Parameter ini berasal dari pemicu Create Auth Challenge. **Untuk menentukan apakah pengguna melewati tantangan, Amazon Cognito membandingkan parameter dengan ChallengeAnswer pengguna.**  
Parameter ini berisi semua informasi yang diperlukan untuk memvalidasi respons pengguna terhadap tantangan. Informasi itu mencakup pertanyaan yang disajikan Amazon Cognito kepada pengguna (`publicChallengeParameters`), dan jawaban yang valid untuk pertanyaan (`privateChallengeParameters`). Hanya pemicu Lambda Verify Auth Challenge Response yang menggunakan parameter ini. 

**challengeAnswer**  
Nilai parameter ini adalah jawaban dari respons pengguna terhadap tantangan.

**clientMetadata**  
Parameter ini berisi satu atau beberapa pasangan nilai kunci yang dapat Anda berikan sebagai input khusus ke fungsi Lambda untuk pemicu tantangan verifikasi autentikasi. Untuk meneruskan data ini ke fungsi Lambda Anda, gunakan ClientMetadata parameter dalam operasi [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 tantangan verifikasi autentikasi.

### Verifikasi parameter respons tantangan Auth
<a name="cognito-user-pools-lambda-trigger-syntax-verify-auth-challenge-response"></a>

**answerCorrect**  
Jika pengguna berhasil menyelesaikan tantangan, Amazon Cognito menetapkan parameter ini ke. `true` Jika pengguna tidak berhasil menyelesaikan tantangan, Amazon Cognito akan menyetel parameternya. `false` 

## Verifikasi contoh respons tantangan Auth
<a name="aws-lambda-triggers-verify-auth-challenge-response-example"></a>

Fungsi verifikasi tantangan autentikasi ini memeriksa apakah respons pengguna terhadap tantangan cocok dengan respons yang diharapkan. Jawaban pengguna ditentukan oleh masukan dari aplikasi Anda dan jawaban yang disukai ditentukan oleh `privateChallengeParameters.answer` respons dari [respons pemicu tantangan create auth](user-pool-lambda-create-auth-challenge.md#aws-lambda-triggers-create-auth-challenge-example). Jawaban yang benar dan jawaban yang diberikan adalah bagian dari peristiwa input untuk fungsi ini.

Dalam contoh ini, jika respons pengguna cocok dengan respons yang diharapkan, Amazon Cognito akan menyetel `answerCorrect` parameternya. `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 };
```

------