-3

Hapi Js サーバーへの https トラフィックのみを許可したい。

このスレッド: Node.JS、Express、Heroku - HTTP と HTTPS を処理する方法は?

それは以下によって達成されました:

if (process.env.NODE_ENV == 'production') {
        app.use(function (req, res, next) {
            res.setHeader('Strict-Transport-Security', 'max-age=8640000; includeSubDomains');
            if (req.headers['x-forwarded-proto'] && req.headers['x-forwarded-proto'] === "http") {
                return res.redirect(301, 'https://' + req.host + req.url);
            } else {
                return next();
            }
        });
    }
4

2 に答える 2

1

これは、これに適した npm モジュールです: https://www.npmjs.org/package/hapi-require-https

于 2014-11-13T23:34:39.820 に答える
0

これは私の(かなりハックな)ソリューションです:

// redirect all http request to secure route
if ('production' === process.env.NODE_ENV) {
  server.ext('onRequest', function (request, next) {
    if (request.headers['x-forwarded-proto'] !== 'https') {
      request.originalPath = request.path;
      request.setUrl('/redirect');
    }
    next();
  });

  server.route([{
    method: 'GET',
    path: '/redirect',
    handler: function (request, reply) {
      var host = request.headers.host;
      reply().redirect('https://' + host + request.originalPath);
    }
  }]);
}

たぶん、誰かがもっときれいなものを思い付くことができます。警告: これは安全でない http トラフィックを防ぐものではありません。ブラウザを https の場所にリダイレクトするだけです。

于 2014-05-17T02:42:51.707 に答える