4

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

调用 Keycloak API 获取密码

获取 /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
}

打电话

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>',
}

正在工作中!

4

2 回答 2

5

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

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

于 2016-02-08T14:16:39.057 回答
3

最后,我使用 keycloaks admin rest api 自己实现了一个 rest 端点。

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

于 2016-02-08T14:21:29.327 回答