[英]NodeJS HTTP Server - How To Verify Client's IP and Login?
如果我決定為我的服務器使用http模塊,我需要執行以下哪些模塊/方法?
謝謝。
當客戶端連接到HTTP服務器時,會發出' connection
'事件,並且提供給回調的參數是net.Socket
類型的流,它具有一個名為' remoteAddress
'的屬性。 同樣,傳遞給請求偵聽器的每個HTTP請求也都有對連接對象的引用:
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello ' + req.connection.remoteAddress + '!');
// Client address in request -----^
});
server.on('connection', function(sock) {
console.log('Client connected from ' + sock.remoteAddress);
// Client address at time of connection ----^
});
server.listen(9797);
對於通過URL中的嵌入式憑據進行身份驗證,我認為這種形式不可靠,因為某些Web瀏覽器不會傳遞 HTTP請求中的信息 (至少IE和Chrome)。 您最好實現基於HTTP標准的身份驗證方案,例如基本訪問身份驗證或摘要訪問身份驗證 。
對於HTTP Basic / Digest身份驗證,您可以使用http-auth模塊
// Authentication module.
var auth = require('http-auth');
var basic = auth.basic({
realm: "Simon Area.",
file: __dirname + "/../data/users.htpasswd" // gevorg:gpass, Sarah:testpass ...
});
// Creating new HTTP server.
http.createServer(basic, function(req, res) {
res.end("Welcome to private area - " + req.user + "!");
}).listen(1337);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.