如何在 keycloak 中调用 create user api 后获取 userId?

Posted

技术标签:

【中文标题】如何在 keycloak 中调用 create user api 后获取 userId?【英文标题】:How can I get userId after call create user api in keycloak? 【发布时间】:2021-08-11 07:57:01 【问题描述】:

我在我的 node.js 项目中实现了 keycloak 并调用以下 API 来在 keycloak 中添加用户:

keycloak_url/admin/realms/realm/users

这个 API 有效,我可以在 keycloak 中添加用户,但我需要 userId 来响应这个 API 我怎样才能得到这个,任何替代方式

提前致谢

【问题讨论】:

【参考方案1】:

如果我理解正确,你只需要使用Keycloak Admin REST API,即端点:

GET /realm/users

使用查询参数username。例如:

GET "keycloak_url/admin/realms/realm/users/?username=username"

注意:它将返回用户名与 username* 匹配的所有用户。因此,可能需要对列表进行额外过滤。对于那些使用 bash 脚本的人,我已经上传了 to my repo 一个关于当前如何进行过滤的示例。

【讨论】:

【参考方案2】:

我相信还有另一种方法可以为您节省额外的请求。如果您在创建用户时查看响应标题,您应该会发现一个名为“位置”时间>。它看起来像这样:

Location: http://keycloak_address/auth/admin/realms/realm/users/3a11cc77-9871-4f6e-805b-bf17ea79fa3a

在这种情况下,值“3a11cc77-9871-4f6e-805b-bf17ea79fa3a”将是新用户的 ID。

我知道你问这个问题已经有一段时间了,但我希望它对某人有所帮助。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review

以上是关于如何在 keycloak 中调用 create user api 后获取 userId?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Keycloak jwt map Create At Date to Token

如何使用 REST API 在 keycloak 中重置用户密码

仅创建用户 Keycloak 角色?

如何在 React 应用程序中集成 keycloak 身份验证?

如何获取访问令牌中的角色:keycloak

Keycloak:访问令牌验证端点