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

身份验证后 Lambda 触发器

Amazon Cognito 在登录用户后调用此触发器,让您能够在身份验证后添加自定义逻辑。

身份验证后 Lambda 流程

客户端身份验证流程

 身份验证后 Lambda 触发器 - 客户端流程

服务器身份验证流程

 身份验证后 Lambda 触发器 - 服务器流程

有关更多信息,请参阅 用户池身份验证流程

身份验证后 Lambda 触发器参数

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

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

身份验证后请求参数

newDeviceUsed

此标记指示用户是否已在新设备上登录。仅在用户池的记住的设备值设置为 AlwaysUser Opt-In 时设置它。

userAttributes

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

身份验证后响应参数

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

身份验证教程

身份验证后 Lambda 函数在 Amazon Cognito 登录新用户之后触发。请参阅这些适用于 JavaScript、Android 和 iOS 的登录教程。

平台 教程
教程 通过 JavaScript 登录用户
Android Identity SDK 通过 Android 登录用户
iOS Identity SDK 通过 iOS 登录用户

身份验证后示例

此身份验证后示例 Lambda 函数将成功登录数据发送到 CloudWatch Logs。

Node.jsPython
Node.js
exports.handler = (event, context, callback) => { // Send post authentication data to Cloudwatch logs console.log ("Authentication successful"); console.log ("Trigger function =", event.triggerSource); console.log ("User pool = ", event.userPoolId); console.log ("App client ID = ", event.callerContext.clientId); console.log ("User ID = ", event.userName); // Return to Amazon Cognito callback(null, event); };
Python
from __future__ import print_function def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

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

JSON
JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }