gpt4 book ai didi

javascript - 如何处理firebase中过期的用户ID token ?

转载 作者:行者123 更新时间:2023-12-04 07:40:12 36 4
gpt4 key购买 nike

我正在使用 Firebase 身份验证对用户进行身份验证。每当用户登录时,我都会使用 user.getIdToken(true) 获取用户的 ID token 。并将其设置在本地存储上。使用授权 header 中的 token ,我正在请求我的后端 API。
在后端,我使用 Firebase 管理 SDK 对请求和用户进行身份验证,并使用在请求授权 header 中传递的客户端 ID token 。
这工作了一段时间。但过了一段时间我得到错误:

ExpiredIdTokenError: Token expired, 1620908095 < 1620915515


我看到 Firebase 会自行刷新 ID token 。但我认为情况并非如此。我查看了开发人员工具网络选项卡,还有一个观察者方法可以检查 token 何时更改 => onIdTokenChanged() ,但 token 永远不会刷新。
我也找不到有关 Firebase 文档的任何信息,希望您能帮助我:
  • 我如何生成一个没有到期限制的 token ,直到退出或至少持续一段时间(可能是 1 周)?
  • 如果我无法设置 token 的到期限制,我应该采取什么步骤以便在我从后端请求数据时可以发送有效的未到期 token ?我要打电话吗user.getIdToken(true)在我从后端 API 请求之前,每次都获得一个新的 token ?
  • 最佳答案

    idTokenChanged()观察者有点误导。它会在 token 刷新时触发,但只有在您还使用其他 Firebase 产品(例如其数据库或文件存储)时才会自动刷新 token 。在其他情况下,如您所说,您应该调用 user.getIdToken() ,如有必要,它将在您每次调用 API 时为您刷新过期的 token 。您不需要通过true除非您希望每次都拥有一个全新的 token (您很可能不需要),否则请使用此方法。
    据我所知,您无法控制使用客户端 SDK 生成的 token 的到期时间,为此您需要在服务器上生成自己的 token 。

    关于javascript - 如何处理firebase中过期的用户ID token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67521781/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com