【发布时间】:2021-01-13 16:04:00
【问题描述】:
我了解了 aws cognito 和 lambda。通常,aws cognito 将它们的数据存储到 aws dynamoDB。但是,在我的项目中,我使用 mongoDB。那么,如何将数据从 aws cognito 存储到 mongoDB?
【问题讨论】:
标签: node.js mongodb express amazon-cognito serverless
我了解了 aws cognito 和 lambda。通常,aws cognito 将它们的数据存储到 aws dynamoDB。但是,在我的项目中,我使用 mongoDB。那么,如何将数据从 aws cognito 存储到 mongoDB?
【问题讨论】:
标签: node.js mongodb express amazon-cognito serverless
如果您想将现有数据从 AWS Cognito 存储到 MongoDB,您可以使用AWS SDK。
npm i aws-sdk
import AWS from 'aws-sdk'
const cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
const params = {
UserPoolId: 'STRING_VALUE', /* required */
AttributesToGet: [
'STRING_VALUE',
/* more items */
],
Filter: 'STRING_VALUE',
Limit: 'NUMBER_VALUE',
PaginationToken: 'STRING_VALUE'
};
cognitoidentityserviceprovider.listUsers(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
获取用户后,将用户列表存入MongoDB。
这个功能有分页。最大限制是 60(如果我没记错的话)。因此,如果您有超过 60 个用户,您将创建一个递归函数来获取所有用户。 更多信息请查看AWS CognitoDocumentation。
未来,如果你将用户存储到 Cognito,从结果中获取 Cognito 用户名和 Cognito 子,并将附加这些属性的用户数据存储到 MongoDB,会更好。
【讨论】: