提问者:小点点

Keyclock:在AngularJS应用程序中更新用户密码


我正在构建一个受Keycloak保护的AngularJS应用程序。每个用户都应在其用户配置文件中更新其密码。

调用Keycloak API获取密码

GET/auth/领域/{realm_name}/帐户/密码

从Keyclock返回HTML内容。我想建立自己的表单来更新用户的密码。

在我找到的Keycloak文档中

POST /auth/realms/{realm_name}/account/password

这需要属性

{
    'password' => user's current password
    'password-new' => new password
    'password-confirm' => new password again
    'stateChecker' => token from keycloak
}

POST /auth/realms/{realm_name}/account/password

没有“stateChecker”属性会导致错误。需要此属性。

以下是我的问题:

  • 如何从登录用户的keyclock获取<code>stateChecker</code>的值(在Keyclock中,它位于隐藏的输入字段中)
  • 还有其他可能通过REST API调用更改用户密码吗

提前感谢。

注意:

呼叫:

POST /auth/realms/{realm_name}/account/password

具有硬编码的属性和值

{
    'password': 'somepasswd',
    'password-new': 'someNEWpasswd',
    'password-confirm': 'someNEWpasswd',
    'stateChecker': '<token copied and pasted from keycloak>',
}

正在工作!


共2个答案

匿名用户

我的建议是覆盖keycloak主题(检查这个: http://docs.jboss.org/keycloak/docs/1.2.0.Beta1/userguide/html/themes.html)。

您可以扩展和修改现有表单,使其看起来像应用程序的其余部分。

匿名用户

最后,我用keycloaks admin rest api实现了自己的restendpoint。

正如Lisa所说,建立一个自己的主题也可以是一个解决方案。