检查节点13中的请求是否已加密(https)

时间:2019-11-18 05:09:46

标签: node.js https nodes

节点13已弃用request.connection。

不再可能request.connection.encrypted ? 'https' : 'http'

如何检查请求是通过Node 13中的https还是http发出的?

2 个答案:

答案 0 :(得分:0)

尝试一下

req.securereq.protocol === 'https'的简写,应该是您想要的。

如果您在代理后面运行应用程序,请启用“信任代理”,以便req.protocol反映用于客户端与代理之间通信的协议。

app.enable('trust proxy');

或者您可以使用

  req.headers['x-forwarded-proto']

希望有帮助。

答案 1 :(得分:0)

以http s .createServer启动服务器时,request.socket.encrypted为true。

使用http.createServer启动服务器时,request.socket.encrypted是未定义的。

这里是docs for tlsSocket.encrypted