node.js - Firebase verifySessionCookie() 导致应用程序在部署到 Firebase 时超时,但在本地工作正常

标签 node.js firebase express cookies

在我的网络应用程序中,有一个页面“interfacePage”,我想限制对它的访问(服务器端)。因此,每次调用页面时,我都会使用一个函数从客户端 cookie 获取 firebase session cookie,然后检查其有效性。如果有效,则渲染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 控制台启动应用程序,每当我请求 interfacePage 时,它​​都会不断地给我网关超时错误。我想大概是这样的

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

由于某种原因,响应时间过长。

如有任何帮助,我们将不胜感激。

最佳答案

好吧,显然 firebase 会删除除名称为“__session”的 cookie 之外的所有 cookie。我将 cookie 的名称从 session 更改为 __session,现在它可以工作了。

关于node.js - Firebase verifySessionCookie() 导致应用程序在部署到 Firebase 时超时,但在本地工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54894223/

相关文章:

node.js - Sequelize – id as uuid – 使用 bulkInsert 自动创建

node.js - 在 jade 中导入 CSV/JSON

node.js - 在 Express 的自定义错误处理程序中获取堆栈跟踪?

json - 返回 JSON 中的嵌套对象时出现问题

mysql - 在桌面和应用程序之间同步数据(最佳实践)

firebase - 如何在heroku上为Google Assistant部署Firebase功能

firebase - Firebase 验证电子邮件的到期日期

node.js - 使用 Express 进行外部获取请求

node.js - 未传递 url 参数时不会调用快速路由

javascript - Node JS + Express - 提供静态文件和数据