使用 keycloak-js 列出用户所属的组?
Posted
技术标签:
【中文标题】使用 keycloak-js 列出用户所属的组?【英文标题】:Listing the groups a user is a member of, using keycloak-js? 【发布时间】:2021-05-30 13:20:52 【问题描述】:我们的网站在 Vue 应用程序中使用 keycloak 进行用户身份验证,并将用户添加到 Keycloak 服务器上的多个组中。问题是我不确定如何发现用户所属的组?
查看Vue.prototype.$keycloak
并没有显示用于列出组的任何功能,我在documentation 中也看不到如何执行此操作。我还检查了readme,但那里也没有任何记录。最后,我尝试查看 REST 文档作为替代方案,但没有任何相关信息。
该应用程序是面向用户的 Vue 应用程序,而不是面向管理员的 Vue 应用程序。
使用 keycloak-js 12.0.3。
【问题讨论】:
【参考方案1】:稍后进行一些实验,结果证明可以通过loadUserInfo()
函数找到它。在我的 Vue 应用程序的上下文中:
const userInfo = Vue.prototype.$keycloak.loadUserInfo();
这会产生以下形式的对象:
"sub": "57ac4e62-a4b0-4bc3-b43c-47d91deed19a",
"email_verified": false,
"name": "Test User",
"groups": [
"offline_access",
"role-my-test-group",
"uma_authorization"
],
"preferred_username": "test-user",
"given_name": "Test",
"locale": "en",
"family_name": "User"
在上面的结果中,我们可以看到role-my-test-group
角色存在于groups
数组中。这不是要包含的组,而是与组相关联的角色 - 我最初假设它是填充的组,但实际上它是基于组成员身份的角色。
【讨论】:
vue 3有什么想法吗?我找不到在组件 vue3 中使用 loadUserInfo 的任何示例 我没有尝试过,因为我们的项目仍在 Vue 2 中。我鼓励任何人提供 Vue 3 特定的响应。以上是关于使用 keycloak-js 列出用户所属的组?的主要内容,如果未能解决你的问题,请参考以下文章