express.js或react.js中的通用用户名/密码身份验证
问题描述:
设置用户身份验证可以通过设置.htaccess和.htpasswd轻松实现。但是,我正在开发一个新的Web应用程序,我使用express.js或react.js创建一个Web服务器。我在网上搜索了用户认证,但他们是电子邮件样式登录的长期项目,如here。我只需要一个通用的用户名和密码。当用户浏览我的网站时,弹出窗口显示用户名和密码。 (与.htaccess样式相同)express.js或react.js中的通用用户名/密码身份验证
答
根据我的理解,您需要在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);
答
如果有人有兴趣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);
我会在星期二实施它,但这似乎是正确的答案,并感谢您的链接。 .htpasswd格式将是相同的?就像它将有一行用户名:在这种情况下密码西蒙:密码 –