【发布时间】: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