gpt4 book ai didi

javascript - 在 sails js 中将所有 http 请求重定向到 https

转载 作者:搜寻专家 更新时间:2023-11-01 00:40:59 25 4
gpt4 key购买 nike

我想弄清楚如何在 Sails JS 0.11.0. 中将所有 HTTP 请求重定向到 HTTPS。

我试过下面的代码,但没有用。

var express = require("express"),
app = express();

app.get('*', function(req,res) {

if(req.isSocket){
return res.redirect('wss://' + req.headers.host + req.url)
}
else{
return res.redirect('https://' + req.headers.host + req.url)
}

}).listen(80);

最佳答案

您可以使用 Sails 中的 http 中间件执行此操作。

在 config/http.js 文件中,将这样的函数添加到中间件对象。

requireHttps: function(req, res, next) {
if (!req.secure) {
return res.redirect('https://' + req.get('host') + req.url);
}

return next();
},

或者像这样(如果您使用 Amazon Elastic Load Balancer,它可以通过 http 与您的服务器通信):

requireHttps: function(req, res, next) {
if (req.headers['x-forwarded-proto'] !== undefined && req.headers['x-forwarded-proto'] == 'http') {
return res.redirect('https://' + req.get('host') + req.url);
}

return next();
},

然后只需将“requireHttps”添加到中间件对象中的顺序数组,如下所示:

order: [
'startRequestTimer',
'cookieParser',
'session',
'passportInit',
'passportSession',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'requireHttps',
'router',
'www',
'favicon',
'404',
'500',
],

关于javascript - 在 sails js 中将所有 http 请求重定向到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34605296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com