从服务器重定向时,页面从 HTTPS 重定向到 HTTP

When redirecting from server, the page being redirected from HTTPS to HTTP

我们在 Amazon Beanstalk 服务上有一个应用程序 运行,它使用 sails.js 作为服务器,Backbone.js 作为客户端。

我们希望站点安全,因此我们需要仅允许 https 访问作为协议。

问题: 我们有一个负载均衡器,它获取 HTTPS 协议并将流量定向到 HTTP 端口 8080。这导致当从 node.js (sails) 重定向时,页面被重定向到不安全的协议,因为应用程序不知道它来了来自安全的...

这个问题有解决办法吗?

module.exports = function(req, res, next)
{
  if (req.isAuthenticated())
        return next();
  else  
  {
      // here the protocol is replaced with http
      res.redirect('/login#');
  }
}

一般来说,您需要检查 X-Forwarded-Proto header 以查看用户与负载平衡器的连接是通过 HTTP 还是 HTTPS。如果是HTTP则重定向到HTTPS。

关于重定向到 HTTP 的代码,看起来您没有在代码中执行任何操作来实际从 HTTP 重定向到 HTTPS,您只是在不更改协议的情况下重定向到登录页面。