本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
確認驗證挑戰回應 Lambda 觸發程序
![挑戰 Lambda 觸發程序](images/lambda-challenges3.png)
- 確認驗證挑戰回應
-
Amazon Cognito 會叫用此觸發程序來驗證使用者對自訂驗證挑戰的回應是否有效。這屬於使用者集區自訂身分驗證流程的一部分。
此觸發程序的請求包含 privateChallengeParameters
和 challengeAnswer
參數。「建立驗證挑戰 Lambda 觸發程序」傳回 privateChallengeParameters
值,其中包含預期的使用者回應。challengeAnswer
參數包含使用者對挑戰的回應。
回應包含 answerCorrect
屬性。如果使用者成功完成挑戰,Amazon Cognito 會將屬性值設定為 true
。如果使用者未能成功完成挑戰,Amazon Cognito 會將此值設定為 false
。
除非使用者已回答所有挑戰,否則挑戰迴圈會不斷重複。
確認驗證挑戰 Lambda 觸發程序參數
Amazon Cognito 傳遞至此 Lambda 函數的請求,是以下參數和 Amazon Cognito 新增至所有請求的常用參數之組合。
確認驗證挑戰請求參數
- userAttributes
-
此參數包含代表使用者屬性的一或多個名稱/值對。
- userNotFound
-
當 Amazon Cognito 將您的使用者集區用戶端的
PreventUserExistenceErrors
設定為ENABLED
時,Amazon Cognito 會填入此布林值。 - privateChallengeParameters
-
此參數來自建立身分驗證挑戰觸發程序。為了確定使用者是否已通過挑戰,Amazon Cognito 會將此參數與使用者的 challengeAnswer 進行比較。
此參數包含驗證使用者對挑戰的回應時,所有必要的資訊。此訊息包含亞 Amazon Cognito 向使用者提出的問題 (
publicChallengeParameters
),以及問題的有效答案 (privateChallengeParameters
)。只有「確認身分驗證挑戰回應 Lambda 觸發程序」會使用此參數。 - challengeAnswer
-
此參數值是使用者對挑戰回應的答案。
- clientMetadata
-
此參數包含您可以做為 Lambda 函數的自訂輸入提供的一個或多個鍵值組,該函數是您用於確認身分驗證挑戰觸發程序所指定。若要將此資料傳遞至您的 Lambda 函數,您可以使用 AdminRespondToAuthChallenge 和 RespondToAuthChallenge API 操作中的 ClientMetadata 參數。Amazon Cognito 不包含其傳遞至確認身分驗證挑戰函數之請求中的 AdminInitiateAuth 和 InitiateAuth API 操作中的 ClientMetadata 參數的資料。
確認驗證挑戰回應參數
- answerCorrect
-
如果使用者成功完成挑戰,Amazon Cognito 會將此參數設定為
true
。如果使用者未能成功完成挑戰,Amazon Cognito 會將此參數設定為false
。
確認驗證挑戰回應範例
在這個範例中,Lambda 函數會檢查使用者對挑戰的回應是否符合預期的回應。如果使用者的回應符合預期的回應,則 Amazon Cognito 會將 answerCorrect
參數設定為 true
。