我有一个角色5应用程序,托管在heroku上。目前,用户可以访问该应用程序的HTTP版本。
如果用户访问HTTP,我怎样强制用户重定向到HTTPS版本?
我尝试了什么:
app.use(function (req, res, next) {
let sslUrl;
if (process.env.NODE_ENV === 'production' &&
req.headers['x-forwarded-proto'] !== 'https') {
sslUrl = ['https://myapp.herokuapp.com', req.url].join('');
return res.redirect(sslUrl);
}
return next();
});
我已将上述代码放在我的node.js服务器中,但它没有用。
用户无法通过HTTP使用该应用,因为他们获得了403错误
答案 0 :(得分:2)
我在https://github.com/rangle/force-ssl-heroku使用了“force-ssl-heroku”软件包,效果很好,非常容易集成。
只需要在开始入口点脚本中输入:
var forceSsl = require('force-ssl-heroku');
并使用它:
app.use(forceSsl);
部署并享受。