В моем веб-приложении есть страница «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)
занимает слишком много времени, чтобы ответить по какой-то причине.
Буду признателен за любую помощь.