在 cookie 过期后持久保留 Firebase 会话的正确方法是什么?

问题描述 投票:0回答:1

我一直在处理身份验证、阅读和观看相关视频。我开始构建自己的 JWT 解决方案,基于五分钟后过期的access_token 和永不过期的refresh_token。我将该令牌存储在 cookie 中,并在需要时使用第二个令牌来提供更多 access_token。我将刷新令牌存储在 Redis 中,以便在其中之一泄露/被盗时能够撤销。

现在,我需要将我的身份验证系统移至 Google Firebase,以便在那里存储我的用户,并添加 Google 和 Facebook 登录信息。但我发现我需要创建一个在两周内过期的 sessionCookie。之后,用户从应用程序注销,需要再次手动访问。我想以正确的方式刷新 firebase sessionCookie(自动,服务器端),但文档对此只字未提。我再次提出自己的解决方案,但我认为这是不对的。

我不想使用 getIdToken 方法,因为使用自定义令牌,我需要在客户端修改每个 api 调用,而这不是我的想法。我想在服务器端进行刷新。

那么,自动刷新sessionCookie并保持用户永久认证的正确方法是什么?

我在这里读到的信息:

node.js firebase firebase-authentication jwt refresh-token
1个回答
0
投票

Firebase ID 令牌将在一小时内过期,此默认行为无法修改或更改,但管理员 sdk 创建的自定义令牌除外,您的过期范围几乎不受限制。

从后端或云功能生成此令牌后,您可以使用此自定义令牌对您的客户端进行身份验证,并在下一个会话中使用它。

唯一的问题是您的应用程序本地缓存设置可以被擦除,清除您的刷新令牌并阻止您的用户重新进行身份验证。

从具有自定义身份验证的 Admin SDK 文档中,这 3 个主题很有趣。

© www.soinside.com 2019 - 2024. All rights reserved.