带有护照身份验证的nodejs express app需要使用https

时间:2016-03-19 14:48:56

标签: node.js express https passport.js

如何将此快速服务器转换为使用https?

var express = require('express');
var router = express.Router();

var isAuthenticated = function (req, res, next) {
    if (req.isAuthenticated())
        return next();
    res.redirect('/');
}

module.exports = function(passport) {

    /* GET login page. */
    router.get('/', function(req, res) {
        // Display the Login page with any flash message, if any
        res.render('index', { message: req.flash('message') });
    });

    /* GET Registration Page */
    router.get('/signup', function(req, res){
        res.render('register',{message: req.flash('message')});
    });

    return router;
}

1 个答案:

答案 0 :(得分:2)

在那一刻你可能会看到这样的东西:

app.listen(3000);

app.listen基本上是http.createServer(app).listen(3000)的别名。 注意:这可能在./bin/www中(如果您使用快速生成器)。

如果您想拥有仅限HTTPS的服务器,则需要将app.listenhttp.createServer()替换为以下内容:

var https = require('https');
var fs = require('fs');

// ... Express app

var options = {
  key: fs.readFileSync('your/own/key.pem'),
  cert: fs.readFileSync('your/own/cert.pem')
};

https.createServer(options, app).listen(8000);