我打电话给
/auth/realms/master/protocol/openid-connect/token
通过在正文中发送以下内容来获取访问令牌,
grant_type=password&client_id=example-docker-jaxrs-app&username=user&password=password&client_secret=1d27aedd-11c2-4ed2-97d5-c586e1f9b3cd
但是当我从 keycloak 管理控制台将更新密码作为必需的操作给用户时,在尝试通过上述 api 获取令牌时出现以下错误,
{
"error": "invalid_grant",
"error_description": "Account is not fully set up"
}
还有一点,2个设置有什么区别,临时密码和更新密码所需的操作?
如果您将密码标记为临时密码,则
update password
的用户操作将被标记为必需。
在用户更新/设置密码之前,即此操作已完成,您将无法使用此用户获取访问令牌,因为该帐户未“完全设置”并且处于一种中间状态需要执行操作才能完成设置的状态。
如果你想更新密码然后更新它并且不要将其标记为临时,如果你标记为临时那么之后只需从所需操作框中删除更新密码。
我和ldap user federation有同样的问题,我查看了SSO的一些表并从user_required_action中删除了数据并清除了用户缓存,它起作用了。