我正在尝试在Heroku上创建一个NodeJS应用程序,这样只有开发人员才能看到它。是否有一种简单的方法可以做到这一点,比如基本身份验证? (我一直在寻找的所有解决方案都特定于Ruby应用程序。)
答案 0 :(得分:3)
如果您想利用基本身份验证,可以选择以下两个选项:http-auth和Passport。 http-auth是一个非常简单的模块,Passport是一个功能强大的模块,可以替代身份验证。这两个模块都提供了从基本代码到Express框架集成的代码示例。
答案 1 :(得分:1)
我有同样的问题。我设法得到一个可能适合你的解决方案,但不适合我,因为它似乎干扰了angular-fullstack的内置用户登录。
我只想快速密码保护应用程序,以便只有开发人员和利益相关者才能看到它。 https://www.npmjs.org/package/http-auth似乎可以解决问题。
这涉及将http-auth添加到您的项目中(npm install http-auth --save)。然后,您需要找到定义了createServer的文件及其中的代码。
如果你正在使用Express,你可以做这样的事情
// HTTP Authentication
var preAuth = require('http-auth');
var basic = preAuth.basic({
realm: "Restricted Access! Please login to proceed"
}, function (username, password, callback) {
callback( (username === "user" && password === "password"));
}
);
// Setup server
var app = express();
app.use(preAuth.connect(basic));
var server = require('http').createServer(app);
如果没有,那么您可以尝试http-auth文档中的一个选项,例如
// Authentication module.
var auth = require('http-auth');
var basic = auth.basic({
realm: "Simon Area."
}, function (username, password, callback) { // Custom authentication method.
callback(username === "Tina" && password === "Bullock");
}
);
// Creating new HTTP server.
http.createServer(basic, function(req, res) {
res.end("Welcome to private area - " + req.user + "!");
}).listen(1337);
这里还有几个相似的线程,有些类似的方法。