可以为AWS Cognito用户池中的单个用户设置多个角色。以下是实现此目的的代码示例:
aws cognito-idp create-group --group-name Role1 --user-pool-id
aws cognito-idp create-group --group-name Role2 --user-pool-id
aws cognito-idp admin-create-user --user-pool-id --username
aws cognito-idp admin-add-user-to-group --group-name Role1 --username --user-pool-id
aws cognito-idp admin-add-user-to-group --group-name Role2 --username --user-pool-id
cognitoUser.getSession((err, session) => {
if (err) {
console.log("Error getting session: " + err);
return;
}
const accessToken = session.getAccessToken().getJwtToken();
const idToken = session.getIdToken().getJwtToken();
// Assuming Role1 is the preferred role
const preferred_role = "Role1"
// Add the user's role info in JWT payload i.e access and id tokens.
const payload = jwt.decode(idToken);
payload["cognito:groups"] = [preferred_role];
const encoded_payload = jwt.encode(payload, null, "none");
console.log("Access Token: " + accessToken)
console.log("ID Token: " + idToken)
});
这样,您可以为单个用户设置多个角色并在获取访问令牌时将其包含在Token中。