快递应用的简单密码验证

时间:2014-08-17 18:05:19

标签: node.js authentication express

我花了很长时间才试图找到一种简单的方法来密封保护使用Express(4)构建的网站,但我一直无法找到有用的教程或模块。似乎存在复杂的问题,full-blown user registration/login procedures使用passport,或者过于简单且不安全的HTTP基本身份验证(like this one)没有任何类型的会话支持(并且有很多变体)以上主题)。

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

那里有什么样的资源可以帮助解决这个问题吗?

非常感谢任何帮助或指示。

1 个答案:

答案 0 :(得分:1)

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

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 });
  }
));

此方法在您的源代码中以纯文本格式存储密码,这不好也不值得推荐。

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

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