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

时间:2015-11-15 09:59:00

标签: node.js amazon-web-services https sails.js load-balancing

我们有一个在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#');
  }
}

1 个答案:

答案 0 :(得分:3)

通常,您需要检查X-Forwarded-Proto标头,以查看用户与负载均衡器的连接是通过HTTP还是HTTPS。然后,如果是HTTP,则重定向到HTTPS。

关于您的代码重定向到HTTP,看起来您在代码中没有做任何事情来实际从HTTP重定向到HTTPS,您只需重定向到登录页面而不更改协议。