AWS Cognito提供了两种类型的角色:联合身份池角色和用户池组角色。这两种角色的区别在于它们的使用场景和范围。
下面是一个使用AWS SDK for JavaScript (v3)创建联合身份池角色的示例代码:
const { CognitoIdentityClient, GetCredentialsForIdentityCommand } = require("@aws-sdk/client-cognito-identity");
const client = new CognitoIdentityClient({ region: "us-west-2" });
const poolId = "your-identity-pool-id";
const providerName = "cognito-idp.us-west-2.amazonaws.com/us-west-2_123456789";
const command = new GetCredentialsForIdentityCommand({
IdentityId: "your-identity-id",
Logins: {
[providerName]: "your-provider-token"
}
});
client.send(command).then((response) => {
const credentials = response.Credentials;
// 使用获取的临时凭证访问AWS资源
}).catch((error) => {
console.error(error);
});
下面是一个使用AWS SDK for JavaScript (v3)为用户池组分配角色的示例代码:
const { CognitoIdentityProviderClient, AdminAddUserToGroupCommand } = require("@aws-sdk/client-cognito-identity-provider");
const client = new CognitoIdentityProviderClient({ region: "us-west-2" });
const userPoolId = "your-user-pool-id";
const username = "your-username";
const groupName = "your-group-name";
const command = new AdminAddUserToGroupCommand({
UserPoolId: userPoolId,
Username: username,
GroupName: groupName
});
client.send(command).then((response) => {
// 成功将用户添加到用户池组中,可以进一步为用户池组分配角色
}).catch((error) => {
console.error(error);
});
以上代码示例展示了如何分别创建联合身份池角色和用户池组角色,并进行相应的操作。根据实际需求,您可以根据这些示例代码进行适当的修改和扩展。