node.js - Express应用程序的简单密码验证

标签 node.js authentication express

我花了很长时间试图找到一种简单的方法来对使用 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/

相关文章:

javascript - 找不到模块 : Can't resolve 'firebase' in react js

android - 如何使用 Spotify API 和 Spotify SDK

php - 使用 laravel 作为 API 注册新用户

javascript - Express 框架给出了一个非常奇怪的错误

java - 如何从 Clojure 导出 Java 类 (.jar)?

node.js - 端点解析错误 - OAuth v2 Azure - msal-node

express - Peerjs 在 localhost 上工作但不在 heroku 上工作?

node.js - Node.js 中的 spawn 与 exec - child_process

mysql在nodejs中使用sequelize搜索子表和父表字段

jquery - 记住我复选框 : To Store authentication information safely?