javascript - Firebase 函数 : How to store simple cookies to remember an authenticated user

标签 javascript node.js firebase express google-cloud-functions

我只是想记住一个用户在 5 分钟后返回网站并计算观看次数。我这样做了,在使用 Firebase Serve 时有效,但部署后没有存储 cookie。

应用程序中的某个位置。

app.use(cookieSession({ name: 'session', keys: ['utl__key_s1', 'utl__key_s2'] }));

尝试检查 session 是否存在并且不超过 5 分钟。

function sessionExists(req) {
    const t = req.session.viewTime;

    if (t == null) {
        req.session.viewTime = + new Date();
        return false;
    }

    const fiveMinutes = ((1000) * 60) * 5;
    if (((+new Date()) - t) > fiveMinutes) {
        req.session = null;
        return false;
    }

    return true;
}

然后我发现问题是我们必须使用__session。我真的不明白。我可以获取上述代码示例的上下文示例吗?

最佳答案

Firebase 函数仅支持 the specifically named __session cookie要通过。如果您手动处理此问题(自己设置 Set-Cookie header ),它将如下所示:

response.set('Set-Cookie', `__session=${VALUE};`)

您可以将 VALUE 设置为您喜欢的任何值,它将被设置并通过您的函数。其他任何内容都将被剥离并且对您的功能不可用。您仍然可以将您想要的任何内容作为字符串序列化到那里,但是由于您只是检查时间差异,因此应该很容易检查。

关于javascript - Firebase 函数 : How to store simple cookies to remember an authenticated user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728312/

相关文章:

javascript - 将参数传递给事件回调

node.js - NodeJS,如何使用 Express 4 呈现静态 HTML?

ios - Firebase Auth 创建用户

javascript - 如何将 limit 和 startAt 应用于 firestore 文档的子项目

java - Firebase 访问 Hackernews

php - 如何使事件永久保留在全日历中

javascript - 更改RequiredFieldValidator中的属性值

Javascript 子字符串搜索

node.js - 如何在环回中验证/授权快速路由

node.js - 子进程 : The stdout parameter