【问题标题】:Listing the groups a user is a member of, using keycloak-js?使用 keycloak-js 列出用户所属的组?
【发布时间】:2021-05-30 13:20:52
【问题描述】:

我们的网站在 Vue 应用程序中使用 keycloak 进行用户身份验证,并将用户添加到 Keycloak 服务器上的多个组中。问题是我不确定如何发现用户所属的组?

查看Vue.prototype.$keycloak 并没有显示用于列出组的任何功能,我在documentation 中也看不到如何执行此操作。我还检查了readme,但那里也没有任何记录。最后,我尝试查看 REST 文档作为替代方案,但没有任何相关信息。

该应用程序是面向用户的 Vue 应用程序,而不是面向管理员的 Vue 应用程序。

使用 keycloak-js 12.0.3。

【问题讨论】:

    标签: vue.js keycloak keycloak-rest-api keycloak-javascript


    【解决方案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 特定的响应。
    猜你喜欢
    • 1970-01-01
    • 2018-08-02
    • 2019-07-18
    • 2019-10-15
    • 2017-02-21
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多