express.js或react.js中的通用用户名/密码身份验证

时间:2017-05-28 15:16:28

标签: javascript node.js reactjs

通过设置.htaccess和.htpasswd可以在apache中轻松实现设置用户身份验证。但是我正在开发一个新的Web应用程序,我使用express.js或react.js来创建Web服务器。我在线搜索用户身份验证,但它们是用于here等电子邮件样式登录的长项目。我只需要一个通用的用户名和密码。当用户浏览我的网站时,会出现一个用户名和密码的弹出窗口。 (与.htaccess风格相同)

2 个答案:

答案 0 :(得分:1)

根据我的理解,您需要在nodejs中进行http服务器身份验证。

我知道一个npm模块。 link

而且设置也很容易。 基本示例

// Authentication module. 
var auth = require('http-auth');
var basic = auth.basic({
    realm: "Simon Area.",
    file: __dirname + "/../data/users.htpasswd"
});

// Creating new HTTP server. 
http.createServer(basic, (req, res) => {
    res.end(`Welcome to private area - ${req.user}!`);
}).listen(1337);

答案 1 :(得分:0)

如果有人对ES2016感兴趣,请按照以下代码操作。设置babel等使其正常工作。

import express from 'express';
import auth from 'http-auth';
// Configure basic auth
const basic = auth.basic({ 
realm: 'SUPER SECRET STUFF'
}, (username, password, callback) => { 
callback(username == 'admin' && password == 'password'); 
});
// Set up express app
const app = express();
// Create middleware that can be used to protect routes with basic auth
const authMiddleware = auth.connect(basic);
// Protected route
app.get('/', authMiddleware, (request, response) => { 
response.send('you made it!'); 
});
app.listen(3000);