Firebase verifySessionCookie () вызывает истечение времени ожидания приложения при развертывании в firebase, но локально работает нормально - PullRequest
0 голосов
/ 27 февраля 2019

В моем веб-приложении есть страница «interfacePage», доступ к которой я хочу ограничить (на стороне сервера).Поэтому я использую функцию каждый раз, когда вызывается страница, чтобы получить куки-файл сеанса Firebase от клиентских куки-файлов, который затем проверяется на достоверность.Если он действителен, interfacePage отображается, в противном случае страница входа будет.

Фрагмент кода

function isAuthenticated(req, res, next){
try {
    var sessionCookie = req.cookies.session;
    console.log(sessionCookie);
    admin.auth().verifySessionCookie(sessionCookie, true)
        .then(function(decodedClaims){
            console.log("token verified");
            next()
                })
        .catch(function(error){
            console.log(error);
            res.redirect('/users/login');
            });
    }catch (err)
    {
        console.log(err);
    }
};

router.get('/interfacePage', isAuthenticated,function (req, res, next) {
//isAuthenticated is called when this get is called. If next() is called from isAuthenticated, then function (req, res, next) is called which renders page
res.render('interfacePage');
});

Этот код работает ОТЛИЧНО ТОЧНО локально.Но как только я развертываю его и запускаю приложение через консоль Firebase, оно продолжает выдавать мне сообщение об ошибке Gateway Timeout всякий раз, когда я запрашиваю interfacePage.Я думаю, что, вероятно,

admin.auth().verifySessionCookie(sessionCookie, true)

занимает слишком много времени, чтобы ответить по какой-то причине.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 07 марта 2019

Хорошо, так что, очевидно, firebase удаляет все куки, кроме куки с именем "__session".Я изменил имя куки с сессии на __session, и теперь он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...