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

Sec*_*one 4 authentication rest change-password angularjs keycloak

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

调用 Keycloak API 获取密码

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

从 Keycloak 返回 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
}
Run Code Online (Sandbox Code Playgroud)

打电话

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

没有 'stateChecker' 属性会导致错误。需要这个属性。

所以这里是我的问题:

  • 如何stateChecker从 keycloak 获取登录用户的值(在 Keycloak 中,它位于隐藏的输入字段中)?
  • 是否有另一种可能通过 REST API 调用更改用户密码?

提前致谢。

笔记:

调用:

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

带有硬编码的属性和值

{
    'password': 'somepasswd',
    'password-new': 'someNEWpasswd',
    'password-confirm': 'someNEWpasswd',
    'stateChecker': '<token copied and pasted from keycloak>',
}
Run Code Online (Sandbox Code Playgroud)

正在工作!

lis*_* p. 5

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

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