7

我正在尝试将 Heroku 上的 NodeJS 应用程序设为私有,以便只有开发人员才能看到它。有没有一种简单的方法可以做到这一点,比如基本身份验证?(我一直在寻找的所有解决方案都特定于 Ruby 应用程序)。

4

2 回答 2

4

如果您想利用基本身份验证,这里有两个选项:http-authPassport。http-auth 是一个非常简单的模块,而 Passport 是一个功能强大的模块,具有多种身份验证选项。这两个模块都提供了从基本代码到 Express 框架集成的代码示例。

于 2013-07-24T23:14:16.707 回答
2

我也有同样的问题。我设法获得了一种可能对您有用但不适合我的解决方案,因为它似乎干扰了来自 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);

这里还有一些相关的线程,它们的方法有些相似。

express.basicAuth 抛出错误

Node.JS 中的基本 HTTP 身份验证?

于 2014-11-14T03:52:55.273 回答