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 应用程序中更新用户密码的主要内容,如果未能解决你的问题,请参考以下文章
如何使基本身份验证作为 Angular JS/Spring 启动应用程序中 keycloak 的替代品