我花了很长时间才试图找到一种简单的方法来密封保护使用Express(4)构建的网站,但我一直无法找到有用的教程或模块。似乎存在复杂的问题,full-blown user registration/login procedures使用passport,或者过于简单且不安全的HTTP基本身份验证(like this one)没有任何类型的会话支持(并且有很多变体)以上主题)。
所有我正在寻找的东西都会将索引页面重定向到登录页面,除非已登录,并带有某种具有会话支持的注销选项。我不需要数据库,只要它们相对安全,我就很乐意硬编码用户密码组合。
那里有什么样的资源可以帮助解决这个问题吗?
非常感谢任何帮助或指示。
答案 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处理所有令人讨厌的事情,例如检查用户是否未经过身份验证。