CognitoIdentityProviderClient
是 AWS Cognito 的一个客户端,用于与 Cognito 用户池进行交互。addCustomAttributes
方法用于向用户池添加自定义属性。然而,直接在 addCustomAttributes
方法中设置账户ID或配置文件/角色是不支持的。相反,您可以在用户注册或更新用户属性时设置这些值。
以下是如何在用户注册时设置账户ID和配置文件/角色的示例:
首先,在 Cognito 控制台中为您的用户池创建自定义属性。例如,您可以创建一个名为 custom:accountId
的属性来存储账户ID,以及一个名为 custom:profileRole
的属性来存储配置文件/角色。
当用户注册时,您可以使用 AdminCreateUser
或 SignUp
API 来设置自定义属性。以下是使用 AdminCreateUser
API 的示例:
const { CognitoIdentityProviderClient, AdminCreateUserCommand } = require("@aws-sdk/client-cognito-identity-provider");
const cognitoIdentityProviderClient = new CognitoIdentityProviderClient({ region: "your-region" });
const params = {
UserPoolId: "your-user-pool-id",
Username: "user@example.com",
UserAttributes: [
{
Name: "email",
Value: "user@example.com",
},
{
Name: "name",
Value: "John Doe",
},
{
Name: "custom:accountId",
Value: "1234567890",
},
{
Name: "custom:profileRole",
Value: "admin",
},
],
};
const command = new AdminCreateUserCommand(params);
cognitoIdentityProviderClient.send(command).then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
请确保将 "your-region"
和 "your-user-pool-id"
替换为您的实际值。
如果您需要更新现有用户的自定义属性,可以使用 AdminUpdateUserAttributes
API。以下是一个示例:
const { CognitoIdentityProviderClient, AdminUpdateUserAttributesCommand } = require("@aws-sdk/client-cognito-identity-provider");
const cognitoIdentityProviderClient = new CognitoIdentityProviderClient({ region: "your-region" });
const params = {
UserPoolId: "your-user-pool-id",
Username: "user@example.com",
UserAttributes: [
{
Name: "custom:accountId",
Value: "0987654321",
},
{
Name: "custom:profileRole",
Value: "user",
},
],
};
const command = new AdminUpdateUserAttributesCommand(params);
cognitoIdentityProviderClient.send(command).then((data) => {
console.log(data);
}).catch((error) => {
console.error(error);
});
同样,请确保将 "your-region"
和 "your-user-pool-id"
替换为您的实际值。
参考链接:
请注意,这些示例使用了 AWS SDK for JavaScript。如果您使用的是其他编程语言,请查阅相应的 AWS SDK 文档以获取相应的 API 和示例代码。
领取专属 10元无门槛券
手把手带您无忧上云