选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

确认后 Lambda 触发器

聚焦模式
确认后 Lambda 触发器 - Amazon Cognito

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

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

Amazon Cognito 会在注册用户确认其用户账户后调用此触发器。在您的确认后 Lambda 函数中,您可以发送自定义消息或添加自定义 API 请求。例如,您可以查询外部系统并为用户填充其他属性。Amazon Cognito 仅对在您的用户群体中注册的用户调用此触发器,而不会针对您使用管理员凭证创建的用户账户调用此触发器。

请求包含已确认用户的当前属性。

确认后 Lambda 流程

客户端确认注册流程

客户端确认注册流程

服务器确认注册流程

服务器确认注册

确认忘记密码流程

确认忘记密码流程

确认后 Lambda 触发器参数

Amazon Cognito 传递给此 Lambda 函数的请求是以下参数和 Amazon Cognito 添加到所有请求中的常用参数的组合。

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": {} }
{ "request": { "userAttributes": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": {} }

确认后请求参数

userAttributes

表示用户属性的一个或多个键值对。

clientMetadata

一个或多个键值对,您可以将其作为自定义输入内容提供给为确认后触发器指定的 Lambda 函数。您可以使用以下 API 操作中的 ClientMetadata 参数将此数据传递给 Lambda 函数:AdminConfirmSignUpConfirmForgotPasswordConfirmSignUpSignUp

确认后响应参数

预计响应中没有其他返回信息。

用户确认教程

确认后 Lambda 函数在 Amazon Cognito 确认新用户后触发。请参阅这些适用于 JavaScript、Android 和 iOS 的用户确认教程。

平台 教程
JavaScript 身份开发工具包 通过 JavaScript 确认用户
Android 身份开发工具包 通过 Android 确认用户
iOS 身份开发工具包 通过 iOS 确认用户

确认后示例

此示例 Lambda 函数将使用 Amazon SES 向用户发送确认电子邮件。有关更多信息,请参阅 Amazon Simple Email Service 开发人员指南

Node.js
// Import required AWS SDK clients and commands for Node.js. Note that this requires // the `@aws-sdk/client-ses` module to be either bundled with this code or included // as a Lambda layer. import { SES, SendEmailCommand } from "@aws-sdk/client-ses"; const ses = new SES(); const handler = async (event) => { if (event.request.userAttributes.email) { await sendTheEmail( event.request.userAttributes.email, `Congratulations ${event.userName}, you have been confirmed.`, ); } return event; }; const sendTheEmail = async (to, body) => { const eParams = { Destination: { ToAddresses: [to], }, Message: { Body: { Text: { Data: body, }, }, Subject: { Data: "Cognito Identity Provider registration completed", }, }, // Replace source_email with your SES validated email address Source: "<source_email>", }; try { await ses.send(new SendEmailCommand(eParams)); } catch (err) { console.log(err); } }; export { handler };
// Import required AWS SDK clients and commands for Node.js. Note that this requires // the `@aws-sdk/client-ses` module to be either bundled with this code or included // as a Lambda layer. import { SES, SendEmailCommand } from "@aws-sdk/client-ses"; const ses = new SES(); const handler = async (event) => { if (event.request.userAttributes.email) { await sendTheEmail( event.request.userAttributes.email, `Congratulations ${event.userName}, you have been confirmed.`, ); } return event; }; const sendTheEmail = async (to, body) => { const eParams = { Destination: { ToAddresses: [to], }, Message: { Body: { Text: { Data: body, }, }, Subject: { Data: "Cognito Identity Provider registration completed", }, }, // Replace source_email with your SES validated email address Source: "<source_email>", }; try { await ses.send(new SendEmailCommand(eParams)); } catch (err) { console.log(err); } }; export { handler };

Amazon Cognito 将事件信息传递给 Lambda 函数。随后,该函数将相同事件对象随同响应中的任何更改返回给 Amazon Cognito。在 Lambda 控制台中,您可以设置一个测试事件,该事件包含与您的 Lambda 触发器相关的数据。以下是此代码示例的一个测试事件:

JSON
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。