WSO2 - 不使用验证码、电子邮件或挑战问题的密码恢复

WSO2 - Password recovery without using captchas, emails or challenge questions

我正在尝试从使用 Soap 与 WS02 身份服务器通信的应用中恢复用户密码。

我打算向 WS02 索要恢复密码的确认码,我自己通过电子邮件将其发送给用户,当我收到确认码时,post 将其与新密码一起发送给 WSO2 api.

我正在使用以下设置:

Notification.Sending.Enable=false
Notification.Expire.Time=0
Notification.Sending.Internally.Managed=false
UserAccount.Recovery.Enable=true
Captcha.Verification.Internally.Managed=false

我尝试按照提到的恢复过程进行操作 here 但错误不断发生:

  1. getCaptcha() - 由于我不假装验证码而被忽略
  2. verifyUser() - Returns 密钥成功。
  3. sendRecoveryNotification() - 在步骤 2 中给定密钥时失败:18001 用户确认码无效。
  4. getCaptcha() - 由于我不假装验证码而被忽略
  5. verifyConfirmationCode() - 使用第 2 步中的密钥:18001 用户确认码无效。
  6. updatePassword() - 使用步骤 2 中的密钥:18013 更新用户凭据时出错。

是否可以在不使用验证码或电子邮件的情况下恢复密码?

Notification.Expire.Time 设置为更高的值(例如 60)。这是密钥有效的时间(以分钟为单位)。在您调用 sendRecoveryNotification() 时,密钥应该已经过期。

同样在第6步中,调用updatePassword()时,应该是第5步中的密钥(当你搞定上面的问题时你会得到一个),而不是第2步中的密钥。