You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Firebase Auth Rest Api登出并禁用idToken?

怎么登出并禁用Firebase ID Token?

Firebase的ID Token是有效期1小时的无状态JWT,没法直接远程废掉单个Token,但可以通过以下两步实现彻底的登出+禁用效果:

1. 客户端本地清除Token

执行完增删操作后,先把客户端存储的idToken删掉,确保自己的应用不会再用这个Token发请求:

  • Web端:删掉localStorage/sessionStorage里存的Token,比如localStorage.removeItem('firebaseIdToken')
  • 移动端:清除对应存储介质里的Token记录

这一步能阻止你自己的客户端误用旧Token,但如果Token已经被别人拿到,这招没用,得配合下面的操作。

2. 调用Firebase Token撤销API废掉所有有效Token

Firebase提供了专门的API,可以把指定用户的所有当前有效Token都作废,哪怕别人已经拿到了Token,后续用它请求Realtime Database也会被拒绝。

调用这个API需要用到你登录时拿到的refreshToken(signInWithPassword接口返回的字段里有),具体请求如下:

POST https://securetoken.googleapis.com/v1/token?key=[你的API_KEY]

请求体为JSON格式:

{
  "token": "[用户的refreshToken]",
  "token_type_hint": "refresh_token"
}

调用成功后,该用户的所有ID Token(包括你刚使用的那个)都会立即失效,彻底解决Token被滥用的风险。

额外提醒

  • 撤销操作是针对整个用户的,不是单个会话,也就是说这个用户在其他设备登录的Token也会一起失效;目前Firebase没有细粒度的单会话撤销支持,只能结合客户端清除+用户级撤销
  • 务必妥善保管refreshToken,它既能用来刷新ID Token,也能用来执行撤销操作,泄露后会带来安全风险
  • 如果业务对安全性要求极高,还可以在Realtime Database的规则里添加额外校验,比如结合设备信息、会话标识等,进一步限制Token的使用场景

内容的提问来源于stack exchange,提问作者Gurkan T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 06:21:37