我花了很长时间试图找到一种简单的方法来对使用 Express (4) 构建的网站进行密码保护,但我一直找不到有帮助的教程或模块。那里的情况似乎很复杂,full-blown user registration/login procedures使用passport ,或者过于简单且不安全的 HTTP 基本身份验证 ( like this one ),没有任何类型的 session 支持(以及上述主题的许多变体)。
我正在寻找的是将索引页面重定向到登录页面的东西,除非登录,并具有某种具有 session 支持的注销选项。我不需要数据库,并且我很乐意对用户密码组合进行硬编码,只要它们相对安全即可。
是否有任何类型的资源可以帮助解决此问题?
任何帮助或指示将不胜感激。
最佳答案
您仍然可以将 Passport 与 Passport-local 一起使用,并编写自己的身份验证处理程序,如 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 验证
函数实现。
使用passport.js方法的一大优点是,您将来可以迁移到另一种身份验证机制,并且passport.js可以处理所有令人讨厌的事情,例如检查用户是否未经身份验证。
关于node.js - Express应用程序的简单密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25352098/