我正在构建受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'属性导致错误。需要此属性。
所以这是我的问题:
stateChecker
的值(在隐藏输入字段中的Keycloak中)?提前致谢。
注意:
通话:
POST / auth / realms / {realm_name} / account / password
具有硬编码属性和值
{
'password': 'somepasswd',
'password-new': 'someNEWpasswd',
'password-confirm': 'someNEWpasswd',
'stateChecker': '<token copied and pasted from keycloak>',
}
正在运作!
答案 0 :(得分:3)
我的建议是覆盖keycloak主题(请查看:http://docs.jboss.org/keycloak/docs/1.2.0.Beta1/userguide/html/themes.html)。
您可以扩展和修改现有表单,使其与应用程序的其余部分类似。
答案 1 :(得分:2)
最后,我使用keycloaks admin rest api。
结束了自己的休息端点实现Lisa表示,建立一个自己的主题也是一个解决方案。