要合并Cognito的不同流程,需要设置自定义Lambda函数作为Cognito的前后钩子。下面是一个示例代码,用于在注册后将用户添加到指定的“组”中。
const AWS = require('aws-sdk');
// Initialize the Amazon Cognito credentials provider
AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'YOUR_IDENTITY_POOL_ID'
});
// Create an Amazon Cognito identity service object
const CognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
exports.handler = (event, context, callback) => {
console.log('Received event:', JSON.stringify(event, null, 2));
// Get the name and email address from the registration form
const name = event.request.userAttributes.name;
const email = event.request.userAttributes.email;
// Add the user to the specified group
const groupParams = {
GroupName: 'my-group',
UserPoolId: event.userPoolId,
Username: event.userName
};
CognitoIdentityServiceProvider.adminAddUserToGroup(groupParams, function(err, data) {
if (err) {
console.log('Error adding user to group:', err);
callback(err);
} else {
console.log('User added to group:', data);
callback(null, event);
}
});
};
此例子中可以看到,我们使用Lambda函数将用户添加到组。要将此Lambda设置作为Cognito的注册后操作,请按照以下步骤操作:
现在,您的Lambda函数已设置为在用户注册后将其添加到指定的组中。