在使用Firebase的REST API测试我们的某个产品(一个Web应用程序)的安全性时,当我们在Firebase实施的V3中意识到刷新令牌永不过期时,我们感到很惊讶,允许任何刷新令牌永久创建新令牌。
虽然本地存储在今天似乎是一个相当安全的解决方案,但我们担心明天可能会失败,即使是很短的时间,我们也无法阻止某人使用任何这些刷新令牌。
双因素身份验证有助于缓解此问题,但第一步仍会受到影响。
有没有办法让Firebase将令牌或类似行为列入黑名单,而无需处理所有令牌交换,例如铸造,我们自己?我们在浏览文档时找不到此类功能。< / p>
任何建议表示赞赏。
答案 0 :(得分:2)
认证会话不会在Firebase登录时到期。但是ID令牌必须每小时刷新一次,才能访问服务。如果您停用某个帐户,刷新令牌将失败,该帐户将无法再访问服务。没有办法使个别令牌无效。
答案 1 :(得分:2)
最近实施了Firebase revokeRefreshTokens()
inside the admin sdk.虽然这不会让你杀死无效的JWT,但它确实允许你阻止令牌的刷新(至少到目前为止我的测试)并且它允许在firebase中更清晰的控制流数据库中。