在 keycloak 中调用 create user api 后如何获取 userId?
How can I get userId after call create user api in keycloak?
我在我的 node.js 项目中实现了 keycloak,并调用以下 API 在 keycloak 中添加用户:
{{keycloak_url}}/admin/realms/{{realm}}/users
这个 API 有效,我可以在 keycloak 中添加用户,但我需要 userId 来响应这个 API 我怎样才能得到这个,任何替代方法
提前致谢
如果我没理解错的话,你只需要使用Keycloak Admin REST API,即端点:
GET /{realm}/users
使用查询参数 username
。例如:
GET "{{keycloak_url}}/admin/realms/{{realm}}/users/?username={{username}}"
注意: 它将 return 所有用户名与 {{username*}} 匹配的用户。因此,可能需要对列表进行额外过滤。对于那些使用 bash 脚本的人,我已经上传 to my repo 一个关于当前如何进行过滤的示例。
我相信还有另一种方法可以为您节省额外的请求。如果您在创建用户时查看 响应 headers,您应该会找到一个名为 的字段“位置”。它看起来像这样:
Location: http://keycloak_address/auth/admin/realms/realm/users/3a11cc77-9871-4f6e-805b-bf17ea79fa3a
在这种情况下,值“3a11cc77-9871-4f6e-805b-bf17ea79fa3a”将是新用户的 ID。
我知道你问这个问题已经有一段时间了,但我希望它能帮助别人。
我在我的 node.js 项目中实现了 keycloak,并调用以下 API 在 keycloak 中添加用户:
{{keycloak_url}}/admin/realms/{{realm}}/users
这个 API 有效,我可以在 keycloak 中添加用户,但我需要 userId 来响应这个 API 我怎样才能得到这个,任何替代方法
提前致谢
如果我没理解错的话,你只需要使用Keycloak Admin REST API,即端点:
GET /{realm}/users
使用查询参数 username
。例如:
GET "{{keycloak_url}}/admin/realms/{{realm}}/users/?username={{username}}"
注意: 它将 return 所有用户名与 {{username*}} 匹配的用户。因此,可能需要对列表进行额外过滤。对于那些使用 bash 脚本的人,我已经上传 to my repo 一个关于当前如何进行过滤的示例。
我相信还有另一种方法可以为您节省额外的请求。如果您在创建用户时查看 响应 headers,您应该会找到一个名为 的字段“位置”。它看起来像这样:
Location: http://keycloak_address/auth/admin/realms/realm/users/3a11cc77-9871-4f6e-805b-bf17ea79fa3a
在这种情况下,值“3a11cc77-9871-4f6e-805b-bf17ea79fa3a”将是新用户的 ID。
我知道你问这个问题已经有一段时间了,但我希望它能帮助别人。