Amazon Cognito
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

确认后 Lambda 触发器

Amazon Cognito 在确认新用户后调用此触发器,让您能够发送自定义消息或添加自定义逻辑。例如,您可以使用此触发器来收集新的用户数据。

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

确认后 Lambda 流程

客户端确认注册流程


                        客户端确认注册流程

服务器确认注册流程


                        服务器确认注册

确认忘记密码流程


                    确认忘记密码流程

确认后 Lambda 触发器参数

这些是此 Lambda 函数除常用参数以外还必需的参数。

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

确认后请求参数

userAttributes

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

确认后响应参数

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

用户确认教程

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

平台 教程
教程 通过 JavaScript 确认用户
Android Identity SDK 通过 Android 确认用户
iOS Identity SDK 通过 iOS 确认用户

确认后示例

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

Node.js
Node.js
var aws = require('aws-sdk'); var ses = new aws.SES(); exports.handler = (event, context, callback) => { console.log(event); if (event.request.userAttributes.email) { sendEmail(event.request.userAttributes.email, "Congratulations " + event.userName + ", you have been confirmed: ", function(status) { // Return to Amazon Cognito callback(null, event); }); } else { // Nothing to do, the user's email ID is unknown callback(null, event); } }; function sendEmail(to, body, completedCallback) { var 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>" }; var email = ses.sendEmail(eParams, function(err, data){ if (err) { console.log(err); } else { console.log("===EMAIL SENT==="); } completedCallback('Email sent'); }); console.log("EMAIL CODE END"); };

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

JSON
JSON
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }