2013-07-24 11 views
6

Próbuję utworzyć aplikację NodeJS na Heroku private, aby tylko programiści mogli ją zobaczyć. Czy istnieje prosty sposób na zrobienie tego, na przykład podstawowe uwierzytelnianie? (Wszystkie rozwiązania, które znajduję, są specyficzne dla aplikacji Ruby).Utwórz aplikację NodeJs jako prywatną na Heroku

+0

Używasz jakichkolwiek ram? – max

Odpowiedz

2

Jeśli chcesz korzystać z podstawowego uwierzytelniania, oto dwie opcje: http-auth i Passport. http-auth to bardzo prosty moduł, a Passport to potężny moduł z alternatywami do uwierzytelniania. Oba moduły dostarczają przykładów kodu, od podstawowego kodu po integrację z Expressem.

+0

Nie sądzę, że o to właśnie pyta. Odpowiada to na sposób uwierzytelnienia użytkownika w aplikacji. Nie na przykład, jak zabezpieczyć środowisko plam. – Noah

0

Mam ten sam problem. Udało mi się uzyskać jedno działające rozwiązanie, które może dla ciebie działać, ale nie było dla mnie odpowiednie, ponieważ zdaje się kolidować z wbudowanym loginem użytkownika z angular-fullstack.

Po prostu chciałem szybko zabezpieczyć aplikację hasłem, aby mogli ją zobaczyć tylko programiści i interesariusze. https://www.npmjs.org/package/http-auth wydaje się załatwiać.

Wiąże się to z dodaniem do projektu http-auth (npm install http-auth - save). Następnie musisz znaleźć plik, w którym zdefiniowany jest twój createServer i kod tam.

Jeśli używasz Express, można zrobić coś takiego

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

Jeśli nie, to możesz wypróbować jedną z opcji z dokumentacją http-auth np

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

Oto kilka powiązanych wątków o nieco zbliżonym podejściu.

express.basicAuth throwing error

Basic HTTP authentication in Node.JS?

Powiązane problemy