小编Dav*_*are的帖子

如何将 Firebase 会话 Cookie 延长超过 2 周

我正在使用 Firebase Auth 让用户使用其 Google 帐户进行身份验证。我发现返回的tokenfirebase.auth().currentUser.getIdToken只有1小时有效。为了让会话持续更长时间,我尝试创建一个会话 cookie,如管理会话 Cookie中所述:

const expiresIn = 60 * 60 * 24 * 5 * 1000;
admin.auth().createSessionCookie(idToken, {expiresIn}).then((sessionCookie) => {
    const options = {maxAge: expiresIn, httpOnly: true, secure: true};
    res.cookie('session', sessionCookie, options);
    res.end(JSON.stringify({status: 'success'});
}
Run Code Online (Sandbox Code Playgroud)

此代码成功创建了会话 cookie,并且可以使用 验证后续请求admin.auth().verifySessionCookie。一切都很好,直到我尝试增加expiresIn持续时间。事实证明,Firebase 会话 Cookie 的最长过期时间为 2 周。来自文档

能够创建自定义过期时间从 5 分钟到 2 周不等的会话 cookie。

对于这个项目,我希望用户登录一次并保持登录状态。我尝试在与服务器的每次交互中扩展会话,但我没有找到任何有关如何执行此操作的官方文档。admin.auth().createSessionCookie使用 返回的令牌调用服务器似乎是有意义的admin.auth().verifySessionCookie,但失败并出现以下错误:

Failed to extend session: { Error: An internal error has occurred. …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-authentication

3
推荐指数
1
解决办法
1872
查看次数

标签 统计

firebase ×1

firebase-authentication ×1