【发布时间】:2021-08-03 21:18:11
【问题描述】:
我正在使用 Firebase 身份验证来对用户进行身份验证。每当用户登录时,我都会使用user.getIdToken(true) 获取用户的 ID 令牌并将其设置在本地存储上。使用授权标头中的该令牌,我正在请求我的后端 API。
在后端,我使用 Firebase 管理 SDK 来验证请求,并使用请求授权标头中传递的客户端 ID 令牌对用户进行身份验证。
这工作了一段时间。但过了一段时间我得到错误:
ExpiredIdTokenError: 令牌过期,1620908095
我看到 Firebase 会自行刷新 ID 令牌。但我认为情况并非如此。我查看了开发人员工具网络选项卡,还有一个观察者方法可以检查令牌何时更改 => onIdTokenChanged(),但令牌永远不会刷新。
我也找不到有关 Firebase 文档的任何信息,希望您能帮助我:
- 如何生成一个没有过期限制的令牌,以持续到注销或至少持续一段时间(可能是 1 周)?
- 如果我无法设置令牌的过期限制,我应该采取哪些步骤以便在我从后端请求数据时发送有效的未过期令牌?在我从后端 API 请求之前,我是否必须每次都调用
user.getIdToken(true)并获取一个新的令牌?
【问题讨论】:
标签: javascript python firebase vue.js firebase-authentication