是否可以检查express.js 处理程序是否正在使用HTTPS?

Mon*_*key 6 ssl node.js express

有没有办法确定请求是否在带有express的node.js中使用HTTPS?我正在使用 Heroku 及其证书,我假设这些证书安装在负载均衡器上,而不是安装在单个 Web 服务器/实例上。

Tee*_*nen 0

如果可以配置nginx,则在nginx config中添加此参数

proxy_set_header X-Forwarded-Proto https;
Run Code Online (Sandbox Code Playgroud)

然后在您的代码中检查它并为其他处理程序设置标志。

mainapp.use(function(req, res) {

  if ( req.header('X-Forwaded-Proto') == 'https' ) {
     req.is_ssl = true;
  }
});
Run Code Online (Sandbox Code Playgroud)