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