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

时间:2015-07-13 12:57:53

标签: angularjs rest authentication change-password 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
}

致电

  

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

正在运作!

2 个答案:

答案 0 :(得分:3)

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

您可以扩展和修改现有表单,使其与应用程序的其余部分类似。

答案 1 :(得分:2)

最后,我使用keycloaks admin rest api。

结束了自己的休息端点实现

Lisa表示,建立一个自己的主题也是一个解决方案。