如果用户没有电子邮件帐户,则实施密码恢复

Implementing password recovery if users have no email account

好的,所以我继承了一个开源项目,用户登录是一个简单的 username/password 组合。不幸的是,如果有人忘记了密码,我们没有密码恢复选项。我希望现在就解决这个问题,但不确定如何安全地解决,因为我们没有任何其他识别特征。用户帐户没有恢复电子邮件,没有 "secret questions," 等

用户帐户仅包含 1) 用户名​​,2) 加密密码,3) 用户具有编辑权限的文档 ID 列表(但这 public 只有查看用户 public页)

现在我可以访问该项目,我将实施 OAuth 或类似的,但是对于忘记密码的旧帐户已经注销,是否有任何正确的方法来识别我的用户以便他们可以做重设密码?

没有很好的方法可以做到这一点。你只是没有信息;甚至不足以联系用户。在用户提供用户名和密码之前,您无法与他们通信。

您需要添加一个在每次用户进行身份验证时运行的检查,检查他们是否设置了恢复数据(电子邮件或您决定的任何内容)。从那里您有多种选择,具体取决于您找到恢复数据的重要性。按照严重程度,您可以:

  1. 在他们添加并验证之前禁止使用该网站 恢复数据。本质上,如果恢复,则完全身份验证将失败 数据未设置。
  2. 提示他们添加恢复数据,但允许他们跳过。
  3. 通知他们已添加设置恢复数据的功能,但不要采取进一步的行动。

如果您要显着更改登录方式,则还需要支持旧方法,直到您想放弃尚未进行切换的用户为止。