我尝试使用express在Heroku上部署一个Node.js应用程序,但是我很难对所有传入的流量强制使用HTTPS。我使用express-sslify库来实现这一点,使用下面的代码,它与express-sslify文档相同,但是网站仍然接受非HTTPS流量。如果您有任何关于如何纠正和/或使用替代中间件的建议,我们将不胜感激!
服务器. js文件
var history = require('connect-history-api-fallback');
var enforce = require('express-sslify');
var http = require('http');
var express = require('express');
var serveStatic = require("serve-static")
var path = require('path');
var app = express();
app.use(enforce.HTTPS({ trustProtoHeader: true }));
app.use(serveStatic(path.join(__dirname, 'dist')));
app.use(history());
const port = process.env.PORT || 80;
http.createServer(app).listen(port)
2条答案
按热度按时间nfzehxib1#
另一种方法是例如这个包:https://www.npmjs.com/package/express-sslify
您只需编写import和一行代码。
有一点很重要,它需要放在所有自定义终结点之前,放在自定义终结点之后可能会阻止它工作。
9rnv2umw2#
请阅读本文了解Heroku标题https://devcenter.heroku.com/articles/http-routing#heroku-headers
Git网址:https://github.com/cmdr-dhiraj-laddha/heroku_force_ssl
下面的代码可以帮助您强制使用SSL