有很多关于在 SO 上恢复密码的问题,但不是关于考虑以下两个之一的更改密码:
1) 用户已经在系统中进行了身份验证(通过用户/密码或通过第三方身份验证,例如 facebook/twitter)
2) 用户知道他或她的旧密码。
鉴于这些起点,我有两个不同的问题,即允许用户以最少的步骤更改他或她的密码的最佳做法是什么。
场景(用户已经通过身份验证并登录系统):
输入旧密码:_ __ _ __ _ (1:我可以摆脱这个)
输入新密码:_ __ _ __ _
再次 输入新密码: _ __ _ __ _ ( 2:我能摆脱这个吗)
1)可以不让用户输入他的旧密码吗?在这种情况下,我假设用户已经通过系统身份验证。让用户重新输入密码似乎是多余的。我知道这对于高安全性应用程序(例如银行)可能很重要,其中用户离开会话无人看管可能允许某人输入新密码而不知道使他们进入这种情况的密码。
在我展示的示例中,应用程序的安全性不是很高,风险也很低。此外,由于我们允许第三方身份验证(facebook/twitter),那么理论上如果其他人在机器上并且用户拥有 facebook/twitter 的实时 cookie,他们就可以进入该帐户。
2)不让用户输入两次新密码是否可以。这样做感觉有点像 90 年代。人们现在已经习惯了密码,他们输入密码与预期不同的 5% 的可能性似乎并没有超过输入两次密码所花费的时间。在这 5% 的情况下,最坏的情况是他们只需要重置密码(或者只需使用 facebook/twitter 登录并重置密码)。我现在发现这样做的一个网站是 Quora(尽管他们仍然执行第 1 步)。我还没有看到很多其他人这样做。