要检索旧的编辑自定义值,您可以使用 AWS Cognito 的管理 API 来获取用户的属性(包括自定义属性)。
以下是一个示例代码,演示如何使用 AWS SDK for JavaScript(Node.js)来检索用户的旧编辑自定义值:
const AWS = require('aws-sdk');
AWS.config.update({ region: 'YOUR_REGION' });
const cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider();
const getUserAttributes = async (userPoolId, username) => {
const params = {
UserPoolId: userPoolId,
Username: username
};
try {
const data = await cognitoIdentityServiceProvider.adminGetUser(params).promise();
return data.UserAttributes;
} catch (error) {
console.error(error);
throw error;
}
};
const getCustomAttributeValue = (userAttributes, attributeName) => {
const attribute = userAttributes.find(attr => attr.Name === attributeName);
return attribute ? attribute.Value : undefined;
};
// Usage example
const userPoolId = 'YOUR_USER_POOL_ID';
const username = 'USER_USERNAME';
const customAttributeName = 'YOUR_CUSTOM_ATTRIBUTE_NAME';
getUserAttributes(userPoolId, username)
.then(userAttributes => {
const customAttributeValue = getCustomAttributeValue(userAttributes, customAttributeName);
console.log(`User's custom attribute value: ${customAttributeValue}`);
})
.catch(error => {
console.error(error);
});
请确保将 YOUR_REGION
替换为您的 AWS 区域,YOUR_USER_POOL_ID
替换为您的用户池 ID,USER_USERNAME
替换为要检索属性的用户的用户名,YOUR_CUSTOM_ATTRIBUTE_NAME
替换为您的自定义属性的名称。
此示例使用 adminGetUser
方法从 Cognito 用户池中检索用户的属性。检索到的属性将作为数组返回,然后使用 getCustomAttributeValue
函数找到所需的自定义属性的值。
希望这可以帮助到您!