Firebase 刷新令牌过期

Jam*_*Dev 5 token local-storage firebase refresh-token

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

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

两因素身份验证将有助于缓解该问题,但第一步将受到损害。

有没有办法使用 Firebase 将令牌或类似行为列入黑名单,而无需我们自己处理所有令牌交换,例如铸造?我们在浏览文档时找不到这样的功能。

任何建议表示赞赏。

Fra*_*len 6

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


Lev*_*evi 5

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

有关粗略示例,请参阅管理员管理会话