在 AWS Cognito 中创建一个 Lambda 函数,用于在用户使用旧的用户名和密码登录时进行密码重置。
编写 Lambda 函数的代码,以下是一个示例代码,它首先检查用户是否是一个新用户,如果是新用户则不执行任何操作,否则强制重置用户密码:
exports.handler = async(event, context) => {
var AWS = require('aws-sdk');
var cognito = new AWS.CognitoIdentityServiceProvider();
var username = event.userName;
var userPoolId = event.userPoolId;
var newPassword = 'NewPassword123'; //重置密码
var newUser = event.request.userAttributes.email_verified === "false";
if(newUser === false) { // 如果不是新用户,则重置密码
var params = {
UserPoolId: userPoolId,
Username: username,
TemporaryPassword: '',
Password: newPassword
};
return cognito.adminSetUserPassword(params).promise();
}
// 如果是新用户,则不执行任何操作
return event;
};
将 Lambda 函数添加到 AWS Cognito 配置中作为“触发器”。
测试您的 Lambda 函数是否按预期运行,您可以使用 AWS Cognito 控制台在“用户和组”选项卡下模拟并测试此功能。