26 lines
840 B
JavaScript
26 lines
840 B
JavaScript
/**
|
|
* Force load with https on production environment
|
|
* https://devcenter.heroku.com/articles/http-routing#heroku-headers
|
|
*/
|
|
module.exports = function(environments, status) {
|
|
environments = environments || ["production"];
|
|
status = status || 301;
|
|
// console.log("New force SSL ");
|
|
// console.log("\tenvs : ", environments);
|
|
// console.log("\tstatus: ", status);
|
|
// console.log("\tENV : ", process.env.NODE_ENV);
|
|
return function(req, res, next) {
|
|
if (environments.indexOf(process.env.NODE_ENV) >= 0) {
|
|
if (req.headers["x-forwarded-proto"] !== "https") {
|
|
const urlToRedirectTo = `https://${req.hostname}${req.originalUrl}`;
|
|
// console.log("\tRedirect :", urlToRedirectTo);
|
|
res.redirect(status, urlToRedirectTo);
|
|
} else {
|
|
next();
|
|
}
|
|
} else {
|
|
next();
|
|
}
|
|
};
|
|
};
|