以下是一个使用AWS Cognito用户池在Node.js中存储和获取用户会话数据的代码示例:
const AWS = require('aws-sdk');
const cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
AWS.config.update({
region: 'YOUR_AWS_REGION',
credentials: new AWS.Credentials('YOUR_AWS_ACCESS_KEY_ID', 'YOUR_AWS_SECRET_ACCESS_KEY')
});
const userPoolId = 'YOUR_COGNITO_USER_POOL_ID';
const storeUserSessionData = async (userId, sessionData) => {
const params = {
UserPoolId: userPoolId,
Username: userId,
UserAttributes: [
{
Name: 'custom:sessionData',
Value: JSON.stringify(sessionData)
}
]
};
try {
await cognitoIdentityServiceProvider.adminUpdateUserAttributes(params).promise();
console.log('User session data stored successfully');
} catch (error) {
console.error('Error storing user session data:', error);
}
};
const getUserSessionData = async (userId) => {
const params = {
UserPoolId: userPoolId,
Username: userId
};
try {
const userData = await cognitoIdentityServiceProvider.adminGetUser(params).promise();
const sessionDataAttribute = userData.UserAttributes.find(attribute => attribute.Name === 'custom:sessionData');
if (sessionDataAttribute) {
return JSON.parse(sessionDataAttribute.Value);
} else {
console.log('No session data found for the user');
return null;
}
} catch (error) {
console.error('Error getting user session data:', error);
return null;
}
};
这就是一个简单的示例,您可以根据自己的需求进行修改和扩展。请确保您已经替换了示例中的占位符,如YOUR_AWS_REGION
,YOUR_AWS_ACCESS_KEY_ID
,YOUR_AWS_SECRET_ACCESS_KEY
,YOUR_COGNITO_USER_POOL_ID
。
上一篇:AWS Cognito用户管理
下一篇:AWS Cognito用户活动