Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript express.js或react.js中的通用用户名/密码身份验证_Javascript_Node.js_Reactjs - Fatal编程技术网

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

Javascript express.js或react.js中的通用用户名/密码身份验证,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,通过设置.htaccess和.htpasswd,可以在apache中轻松实现设置用户身份验证。不过,我正在开发一个新的web应用程序,并使用express.js或react.js创建一个web服务器。我在网上搜索了用户身份验证,但它们都是像这样的电子邮件式登录的长项目。我只需要一个通用用户名和密码。当用户浏览到我的网站时,用户名和密码会出现一个弹出窗口。与.htaccess样式相同根据我的理解,您需要在nodejs中进行http服务器身份验证 我知道一个npm模块 而且安装起来也很容易。 基本示

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

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

我知道一个npm模块

而且安装起来也很容易。 基本示例

// 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);

如果有人对ES2016感兴趣,请遵循以下代码。设置巴别塔等使其工作

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);

我将在周二实施,但这似乎是正确的答案,谢谢你的链接。.htpasswd格式是否相同?就像它将有一行用户名:password在本例中是Simon:password