验证身份验证质询响应 Lambda 触发器
验证身份验证质询触发器是一个 Lambda 函数,用于将用户提供的响应与已知回答进行比较。此功能告诉您的用户池,用户是否正确回答了质询。当验证身份验证质询触发器对 answerCorrect
的响应为 true
时,身份验证序列可以继续。
- 验证身份验证质询响应
-
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
。