passport-local不会对您的密码进行哈希处理-
它将凭据传递给您的verify回调以进行验证,并且您需要处理凭据。因此,您可以使用任何哈希算法,但我相信bcrypt是最受欢迎的算法。
您在注册处理程序中对密码进行哈希处理:
app.post('/register', function(req, res, next) { // Whatever verifications and checks you need to perform here bcrypt.genSalt(10, function(err, salt) { if (err) return next(err); bcrypt.hash(req.body.password, salt, function(err, hash) { if (err) return next(err); newUser.password = hash; // Or however suits your setup // Store the user to the database, then send the response }); });});
然后在您的验证回调中,将提供的密码与哈希进行比较:
passport.use(new LocalStrategy(function(username, password, cb) { // Locate user first here bcrypt.compare(password, user.password, function(err, res) { if (err) return cb(err); if (res === false) { return cb(null, false); } else { return cb(null, user); } });}));
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)