某些用户缺少盐和散列密码

Salt and hashed password missing on some users

我为我的用户使用 mongodb 数据库,并使用 bcrypt 为每个用户存储 salt 和散列密码。

除了前 100 个在我要求输入密码之前注册的人以外的所有。他们想念那些属性。

现在正确的做法是什么?我是否将 salt 和 hash 随机化并写在这些用户身上?我是否更改身份验证代码以检查 salt/password 是否未定义(现在它只是崩溃)?

在这种情况下,最佳做法是什么?

首先,您应该始终检查数据是否存在。对于任何真正的服务崩溃都不是一种选择。

如果您希望每个人现在都有密码,那么您有两个选择:要么要求这些用户先设置密码,然后再执行其他操作,要么只为他们设置一个随机密码,然后通过电子邮件将其发送给他们。

第一个选项比较难做,因为它可能意味着要添加很多新逻辑。第二个更容易,但你冒着人们无法登录的风险,因为电子邮件丢失了。

在任何情况下,您的代码都应该随时准备好应对数据库中某些数据丢失或不正确的情况,因此即使您为所有用户添加了密码,您仍然应该检查它是否存在而不是崩溃如果不是。