【发布时间】:2020-11-17 21:46:58
【问题描述】:
我正在尝试使用 nodejs 将 keycloak 分配角色分配给用户函数。我能够使用用户 ID、客户端 ID 和角色(名称、ID)一次分配单个用户,但我想编写一个方法我可以获取所有用户 id 并获取我已经完成的所有角色 id 和名称,并且基本上循环分配方法,这样我就可以一个一个地为每个用户分配一个角色,直到循环结束
Function AssignRole(适用于单用户)
let userUUID = "0a850afa-dda1-427f-859c-2512dcb55e17"
let kc_clientUUID = "fb1b263c-88d5-4a45-9e18-2098451b5862"
function AssignRole(userUUID, roleId, roleName, kc_clientUUID, kc_accessToken) {
let urlAssignRole = `${path}/users/${userUUID}/role-mappings/clients/${kc_clientUUID}`;
return axios({
method: 'post',
url: urlAssignRole,
data: [{ id: roleId, name: roleName }],
headers: {
'content-type': 'application/json',
'Authorization': `Bearer ${kc_accessToken}`
}
})
.then(function (response) {
console.log("Role Assigned!!");
})
.catch(function (error) {
console.log(error);
});
}
函数调用工作
GetUser(userid, kc_accessToken).then((resp) => {
userid = resp.data.map(user => user.id);
console.log("User Ids");
console.log(userid);
})
GetRole(roleId, roleName, kc_accessToken).then((resp) => {
roleId = resp.data.map(role => role.id);
roleName = resp.data.map(role => role.name);
console.log("Role Id and Names");
console.log(roleId);
console.log(roleName);
})
AssignRole(userUUID, "3b178b5b-b323-4bb6-b8d3-a6c2d342fd72", "role4", kc_clientUUID, kc_accessToken).then((resp) => {
})
现在我有一个用户列表和一个角色列表我如何使用循环将每个角色分配给每个用户?
这是我的代码
函数调用不工作
GetUser(userid, kc_accessToken).then((resp) => {
userid = resp.data.map(user => user.id);
GetRole(roleId, roleName, kc_accessToken).then((resp) => {
roleId = resp.data.map(role => role.id);
roleName = resp.data.map(role => role.name);
// Assign roles to all the user
AssignRole(userid, roleId, roleName, kc_clientUUID,
kc_accessToken).then((resp) => {
})
})
})
【问题讨论】:
标签: javascript node.js arrays loops keycloak