我正在尝试更新Keycloak中的用户信息,我能够使用keycloak中提供的ID更新用户。
我尝试使用此端点,并且能够使用id更新
for ( ... ) <statement>
我是否可以通过任何方式使用电子邮件ID更新同一用户,因为这也是唯一字段?我尝试将{id}替换为用户的电子邮件ID,但这给了我一个错误。 有什么方法可以使用email-id或用户的任何其他唯一字段更新用户
答案 0 :(得分:1)
这是不Keycloak可用功能实际上。您可以检查REST API的文档here。 你总是可以做到的解决办法让所有的用户,解析它寻找您想要的电子邮件,提取ID,并最终用它来更新它的数据。
GET /admin/realms/{realm}/users/
User
的类中对其进行了解析,请使用其#getId()
方法。PUT /admin/realms/{realm}/users/{id}
您可以查看Keycloak的UserRepresentation,以了解您的User对象将需要哪些属性。
如果你不知道如何使用GSON阅读他们的文档或执行一个快速谷歌搜索。
<强> P.S 强>:。GSON是大小写敏感所以你的属性应该具有比JSON对象提供的一个相同的名字
答案 1 :(得分:0)
您无法使用电子邮件ID更新用户,选项是为用户名设置电子邮件ID并使用以下API搜索。一旦找到用户,然后更新用户。
GET /admin/realms/{realm}/users
还请注意,搜索操作不是完全匹配搜索,在chris@example.com
上进行搜索将同时返回amy.chris@example.com
,chris@example.com
。