验证身份验证质询响应 Lambda 触发器 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

验证身份验证质询响应 Lambda 触发器


            质询 Lambda 触发器
验证身份验证质询响应

Amazon Cognito 调用此触发器,以验证最终用户对自定义身份验证质询的响应是否有效。它是用户池自定义身份验证流程的一部分。

此触发器的请求包括 privateChallengeParameterschallengeAnswer 参数。这些区域有:privateChallengeParameters值由 “创建身份验证质询” Lambda 触发器返回,并将包含用户的预期响应。challengeAnswer 参数包含用户对质询的响应。

响应包含 answerCorrect 属性,如果用户成功完成质询,则该属性设置为 true,否则设置为 false

质询循环将一直重复到所有质询得到回答。

验证身份验证质询 Lambda 触发器参数

这些是此 Lambda 函数所需的参数,除了常见参数

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeAnswer": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "answerCorrect": boolean } }

验证身份验证质询请求参数

userAttributes

表示用户属性的一个或多个名称/值对。

userNotFound

当为您的用户池客户端将 PreventUserExistenceErrors 设置为 ENABLED 时,将填充此布尔值。

privateChallengeParameters

此参数来自“创建身份验证质询”触发器,它将与用户的 challengeAnswer 进行对比以确定用户是否通过了质询。

此参数仅由 “验证身份验证质询响应” Lambda 触发器使用。它应包含验证用户对质询的响应所需的一切信息。这包括 publicChallengeParameters 参数 (包含向用户显示的问题) 和 privateChallengeParameters (包含问题的有效答案)。

challengeAnswer

来自用户对质询的响应的答案。

clientMetadata

一个或多个键值对,您可以将其作为自定义输入内容提供给 Lambda 函数,该函数是为验证身份验证质询触发器指定的。您可以使用 ClientMetadata 参数将此数据传递给 Lambda 函数,该函数是使用AdminRespondToAuthChallengeRespondToAuthChallengeAPI 操作。

验证身份验证质询响应参数

answerCorrect

如果用户已成功完成质询,则设置为 true,否则设置为 false

验证身份验证质询响应示例

在本示例中,Lambda 函数检查用户对质询的响应是否与预期响应一致。如果用户的响应与预期响应一致,则 answerCorrect 参数设置为 true

Node.js
exports.handler = (event, context, callback) => { if (event.request.privateChallengeParameters.answer == event.request.challengeAnswer) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } // Return to Amazon Cognito callback(null, event); }