【问题标题】:Wso2 password reset with email confirmation code invalidates after one use使用电子邮件确认码重置 Wso2 密码在使用一次后失效
【发布时间】:2015-06-05 04:21:16
【问题描述】:

WSO2 有一个通过电子邮件更新密码的 6 个步骤。

getCaptcha() -­ Generates a captcha.
verifyUser() -­ Validates the captcha answer and username and returns a new key.
sendRecoveryNotification() -­ Send an email notification with a confirmation code to the user. Need to provide the key from previous call.
getCaptcha() ­- Generates a captcha when the user clicks on the URL.
verifyConfirmationCode() -­ Validates the captcha answer and confirmation code. This returns a key.
updatePassword() -­ Updates the password in the system. Need to provide the key from previous call, new password and returns the status of the update, true or false.

第 3 步将确认代码发送到电子邮件地址,然后在第 5 步中提供,验证用户是否正确。

当有人输入他们已经使用过的密码时,就会出现问题。如果输入的密码在过去使用过,数据库将拒绝该密码,从而让 WSO2 返回密码更新错误。当一个人然后去输入一个新密码时,确认码已经失效。这意味着用户必须重新开始整个过程​​才能获得新代码来重置密码。

是否有防止输入错误密码时确认码自行失效的设置?

他们的网站声明:

同样对于每次通信,生成的确认码不会被服务重用。这使得服务安全并且重复尝试访问相同服务失败。因此,对于基于电子邮件的恢复,调用应用程序必须执行的调用顺序如下:

这是否意味着密码更新会话中的一个用户只有一次尝试更改密码?

【问题讨论】:

  • 密码验证在哪里进行?是 WSO2 Identity Server 插入的底层 ldap\AD 吗?
  • 是的。底层 LDAP 将采用 wso2 传入的密码,如果密码已在 LDAP 中使用,则不会接受。然后 WSO2 将返回更新密码的错误。如果密码更新失败,则确认码已被使用,不能再次使用。这意味着用户必须收到一封新电子邮件才能再次完成该过程。

标签: wso2 forgot-password change-password


【解决方案1】:

AFAIK 这是当前版本 5.0.0 中的限制。

创建了一个 JIRA [1] 来提及此要求。

[1]https://wso2.org/jira/browse/IDENTITY-3175

HTH, 达雷

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多