首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为CognitoIdentityProviderClient的addCustomAttributes设置帐户ID或配置文件/角色?

CognitoIdentityProviderClient 是 AWS Cognito 的一个客户端,用于与 Cognito 用户池进行交互。addCustomAttributes 方法用于向用户池添加自定义属性。然而,直接在 addCustomAttributes 方法中设置账户ID或配置文件/角色是不支持的。相反,您可以在用户注册或更新用户属性时设置这些值。

以下是如何在用户注册时设置账户ID和配置文件/角色的示例:

  1. 创建自定义属性

首先,在 Cognito 控制台中为您的用户池创建自定义属性。例如,您可以创建一个名为 custom:accountId 的属性来存储账户ID,以及一个名为 custom:profileRole 的属性来存储配置文件/角色。

  1. 在用户注册时设置自定义属性

当用户注册时,您可以使用 AdminCreateUserSignUp API 来设置自定义属性。以下是使用 AdminCreateUser API 的示例:

代码语言:txt
复制
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" 替换为您的实际值。

  1. 更新现有用户的自定义属性

如果您需要更新现有用户的自定义属性,可以使用 AdminUpdateUserAttributes API。以下是一个示例:

代码语言:txt
复制
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 和示例代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券