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

Posted

技术标签:

【中文标题】Keycloak:在 AngularJS 应用程序中更新用户密码【英文标题】:Keycloak: Update user password in AngularJS application 【发布时间】:2015-10-01 18:12:14 【问题描述】:

我正在构建一个受 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

打电话

POST /auth/realms/realm_name/account/password

没有 'stateChecker' 属性会导致错误。该属性是必需的。

所以这是我的问题:

如何从登录用户的 keycloak 中获取 stateChecker 的值(在 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>',

正在工作!

【问题讨论】:

你用的是什么版本的keycloak? 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

听起来是一种合理的方法。很高兴听到它正在工作。

以上是关于Keycloak:在 AngularJS 应用程序中更新用户密码的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak Spring 启动配置

使用反向代理后面的 keycloak 进行身份验证失败

如何使基本身份验证作为 Angular JS/Spring 启动应用程序中 keycloak 的替代品

通过 REST 与 Keycloak 保护的后端进行后端到后端通信

Keycloak - 如何在登录页面上添加返回应用程序链接

无法在 keycloak 上查看登录页面