Ошибка неверного перенаправления в Chrome после перехода на CloudFlare - PullRequest
0 голосов
/ 12 декабря 2018

Мой сайт www.exampartner.in работает на экземпляре EC2 с использованием NodeJS, подключенного к домену, который я купил на bigrock.in.Чтобы использовать SSL, я перешел на CloudFlare, однако с тех пор, как я перешел на CloudFlare, на моем сайте возникают проблемы.Основной проблемой является недопустимая ошибка перенаправления, с которой я столкнулся на javascript, logo и ham pic после установки перенаправления https в качестве правила страницы.Затем я отключил его и попытался загрузить эти ресурсы по протоколу HTTP, но все равно не получилось.Теперь я также отключил SSL, и страница, кажется, работает.Я приложил скриншот для справки.Пожалуйста помоги.Благодарю вас.Вот мои маршруты.js:

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

router.get('/login', function (req, res, next) {
    res.render('login', { message: req.flash('loginMessage'), user: req.user });
});

router.get('/', function (req, res) {
    res.render('mainpage', { user: req.user });
});

router.get('/signup', function (req, res, next) {
    res.render('signup', { message: req.flash('signupMessage'), user: req.user });
});
// process the login form
router.post('/login', passport.authenticate('local-login', {
    successRedirect: '/profile', // redirect to the secure profile section
    failureRedirect: '/login', // redirect back to the signup page if there is an error
    failureFlash: true // allow flash messages
}));


// app.post('/signup', do all our passport stuff here);
router.post('/signup', passport.authenticate('local-signup', {
    successRedirect: '/profile', // redirect to the secure profile section
    failureRedirect: '/signup', // redirect back to the signup page if there is an error
    failureFlash: true // allow flash messages
}));
// =====================================
// PROFILE SECTION =====================
// =====================================
// we will want this protected so you have to be logged in to visit
// we will use route middleware to verify this (the isLoggedIn function)
router.get('/profile', isLoggedIn, function (req, res) {
    res.render('profile', {
        user: req.user // get the user out of session and pass to template
    });
});

// =====================================
// LOGOUT ==============================
// =====================================
router.get('/logout', function (req, res) {
    req.logout();
    res.redirect('/');
});
// };

// route middleware to make sure a user is logged in
function isLoggedIn(req, res, next) {

    // if user is authenticated in the session, carry on 
    if (req.isAuthenticated())
        return next();

    // if they aren't  logged redirect them to the home page
    res.redirect('/');
}

router.post('/login', passport.authenticate('local-login', {
    successRedirect: '/profile', // redirect to the secure profile section
    failureRedirect: '/login', // redirect back to the signup page if there is an error
    failureFlash: true // allow flash messages
}));

router.get('/bitsat', function (req, res) {
    res.render('bitsat', { user: req.user });
})

router.get('/aieee', function (req, res) {
    res.render('aieee', { user: req.user });
})

router.get('/ip', function (req, res) {
    res.render('ip', { user: req.user });
})

router.get('/jeemain', function (req, res) {
    res.render('jeemain', { user: req.user });
})

router.get('/jeeadvanced', function (req, res) {
    res.render('jeeadvanced', { user: req.user });
})

router.get('/jeemain/:year', function (req, res) {
    res.render(__dirname + '/views/jee_main/' + req.params.year, { user: req.user });
});

router.get('/jeemain/:year/:paper', function (req, res) {
    var filename = req.params.paper.substr(0, 2) + 'April' + req.params.year
    var mor = req.params.paper.indexOf('Morning')
    var eve = req.params.paper.indexOf('Evening')
    if (mor !== -1) {
        filename = filename + req.params.paper.substr(mor, req.params.paper.length)

    }
    if (eve !== -1) {
        filename = filename + req.params.paper.substr(eve, req.params.paper.length);
    }
    res.download(__dirname + '/downloads/jee_main/' + req.params.year + '/' + filename + '.pdf')
});

router.get('/bitsat/:op', function (req, res) {
    res.render(__dirname + '/views/bitsat/' + req.params.op, { user: req.user });
});

router.get('/bitsat/:op/:year', function (req, res) {
    res.download(__dirname + '/downloads/bitsat/' + req.params.op + '/' + req.params.year + '.pdf')
});



module.exports = router;

1 Ответ

0 голосов
/ 13 декабря 2018

Редактировать: Чтобы использовать строгий SSL Cloudflare, вам необходимо установить сертификат SSL на вашем сервере. Позволяет шифровать предоставляет бесплатные SSL-сертификаты, которые должны обновляться каждые 90 дней.Если процесс кажется сложным, вы можете использовать Zero SSL , который упрощает получение сертификата от let encrypt, а также для обновления существующего сертификата.

Вы должны настроить экспресс дляобрабатывать https запрос / ответ.Для приложения Node.js требуется ssl-сертификат и ключ.

const express = require('express')
const fs = require('fs')
const https = require('https')
const app = express()



https.createServer({
  key: fs.readFileSync('server.key'),
  cert: fs.readFileSync('server.cert')
}, app)
.listen(process.env.PORT || 3000, function () {
  console.log('"App Listening at port:" + port')
})
...