Node.js express应用程序的简单密码验证

Node.js express应用程序的简单密码验证,node.js,authentication,express,Node.js,Authentication,Express,我花了很长时间试图找到一种简单的方法来对使用Express(4)构建的站点进行密码保护,但是我找不到一个有帮助的教程或模块。似乎存在的是复杂的、正在使用的、或者过于简单和不安全的HTTP基本身份验证(),没有任何类型的会话支持(以及上述主题的许多变体) 我所要寻找的是一种可以将索引页面重定向到登录页面的东西,除非登录,它具有某种类型的带有会话支持的注销选项。我不需要数据库,我很乐意硬编码用户密码组合,只要它们相对安全 有没有什么资源可以帮助解决这个问题 非常感谢您的帮助或指点。您仍然可以将pas

我花了很长时间试图找到一种简单的方法来对使用Express(4)构建的站点进行密码保护,但是我找不到一个有帮助的教程或模块。似乎存在的是复杂的、正在使用的、或者过于简单和不安全的HTTP基本身份验证(),没有任何类型的会话支持(以及上述主题的许多变体)

我所要寻找的是一种可以将索引页面重定向到登录页面的东西,除非登录,它具有某种类型的带有会话支持的注销选项。我不需要数据库,我很乐意硬编码用户密码组合,只要它们相对安全

有没有什么资源可以帮助解决这个问题


非常感谢您的帮助或指点。

您仍然可以将passport与passport local一起使用,并编写自己的身份验证处理程序,如中所示。身份验证处理程序实现可能如下所示

var LocalStrategy = require('passport-local').Strategy;

var users = {
   'mike' : 'secret'
};

passport.use(new LocalStrategy(
  function(username, password, done) {
    if (!users[username] || users[username] != password) { 
      return done(null, false); 
    }

    return done(null, { username : username });
  }
));
这种方法在源代码中以纯文本形式存储密码,这既不好也不推荐

要扩展上述实现以支持散列(和盐)密码,您可以查看
authenticate
函数实现


使用passport.js方法的最大优点是,将来可以迁移到另一种身份验证机制,passport.js可以处理所有令人讨厌的事情,比如检查用户是否未通过身份验证

谢谢你的帮助和想法。你说得对,从长远来看,使用passport是有意义的。但是,我在运行您的代码时遇到了一些问题,并且使用了此示例中的大部分代码: