Firebase 刷新令牌过期

Firebase refresh-token expiration

在使用 Firebase 的 REST API 测试我们的一个产品 Web 应用程序的安全性时,当我们意识到 refresh-tokens 永不过期 在 Firebase 实现的 V3 中,允许任何刷新令牌永远创建新令牌

虽然本地存储在今天看来是一个相当安全的解决方案,但我们担心 明天它可能会失败 ,即使是很短的时间,而且我们不能阻止某人使用任何这些刷新令牌。

双因素身份验证将有助于缓解问题,但第一步仍然会受到影响。

有没有一种方法可以使用 Firebase 将代币或类似行为列入黑名单,而无需我们自己处理所有代币交换,例如铸造?我们去的时候找不到这样的功能通过文档。

感谢任何建议。

身份验证会话不会因 Firebase 登录而过期。但是 ID 令牌必须每小时刷新一次,以保持对服务的访问。如果您禁用一个帐户,刷新令牌将失败,该帐户将无法再访问服务。无法使单个令牌失效。

Firebase 最近实现了 revokeRefreshTokens() inside the admin sdk. 虽然这不会让您杀死无效的 JWT,但它确实允许您阻止刷新令牌(至少从我到目前为止的测试来看)并且它允许更清晰的控制流在 firebase 数据库中。

See Admin Manage Sessions For rough examples