gpt4 book ai didi

node.js - NodeJS HTTP 服务器 - 如何验证客户端的 IP 和登录?

转载 作者:IT老高 更新时间:2023-10-28 23:18:36 26 4
gpt4 key购买 nike

如果我决定为我的服务器使用 http 模块,我需要执行以下哪个模块/方法?

  • 验证连接客户端的源IP地址?
  • 如果服务器需要像 http://username:password@exmaple.com/method1 这样的 URL ,如何设置 NodeJS 的 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 中嵌入的凭据进行身份验证,我认为这种形式不像 some web browsers do not pass on the information 那样可靠。在 HTTP 请求中(至少 IE 和 Chrome)。您最好实现基于 HTTP 标准的身份验证方案,例如 Basic access authDigest access auth .

关于node.js - NodeJS HTTP 服务器 - 如何验证客户端的 IP 和登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6388842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com