Firebase功能:如何存储简单的cookie以记住经过身份验证的用户

Rel*_*elm 10 javascript node.js express firebase google-cloud-functions

我只想记住用户返回网站并在5分钟后计算视图.我这样做了,在使用时可以工作Firebase Serve,但是在部署后没有存储cookie.

在应用程序的某个地方.

app.use(cookieSession({ name: 'session', keys: ['utl__key_s1', 'utl__key_s2'] }));
Run Code Online (Sandbox Code Playgroud)

试图检查会话是否存在且不超过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;
}
Run Code Online (Sandbox Code Playgroud)

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

moo*_*ard 6

Firebase 函数仅支持传递特定命名的__sessioncookie。如果你手动处理这个(你自己设置 Set-Cookie 标头),它看起来像这样:

response.set('Set-Cookie', `__session=${VALUE};`)
Run Code Online (Sandbox Code Playgroud)

你可以设置VALUE任何你喜欢的,它会被设置并通过你的函数。其他任何内容都将被删除并且无法用于您的功能。您仍然可以将您想要的任何内容序列化为字符串,但由于您只是检查时间差异,因此检查应该很容易。