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

如何为无法登录的Firebase用户取消注册/重置TOTP双因素认证?

恢复丢失TOTP认证器的用户登录权限

针对Firebase Auth平台下的用户,可通过以下几种方式移除用户的TOTP双因素认证,恢复登录权限:

方法1:使用Firebase Admin SDK(Python)直接更新用户

不要尝试修改user._data中的私有字段,使用官方提供的auth.update_user方法即可清空用户的MFA enrollment:

from firebase_admin import auth

# 替换为目标用户的UID
target_uid = "your-user-uid"

# 清空所有MFA认证项
auth.update_user(
    target_uid,
    mfa_enrollments=[]
)

执行后,用户再次登录时将无需输入TOTP验证码。

方法2:调用Firebase Auth Admin REST API

若SDK调用受限,可直接使用Admin端REST API,通过服务账号令牌授权操作:

  1. 先通过服务账号生成有效的访问令牌(可使用gcloud CLI或google-auth Python库生成)
  2. 发送POST请求到接口:https://identitytoolkit.googleapis.com/v2/accounts/{用户UID}:setMfaEnrollments
  3. 请求体设置mfaEnrollments为空数组,示例请求(curl):
curl -X POST \
  'https://identitytoolkit.googleapis.com/v2/accounts/USER_UID:setMfaEnrollments?key=你的项目API密钥' \
  -H 'Authorization: Bearer 服务账号访问令牌' \
  -H 'Content-Type: application/json' \
  -d '{
    "mfaEnrollments": []
  }'

方法3:Firebase控制台手动操作

如果涉及用户数量较少,可直接在控制台完成:

  • 登录Firebase控制台,进入Authentication > Users页面
  • 找到目标用户,点击右侧的编辑按钮
  • 在Multi-factor authentication板块,移除对应的TOTP认证记录

说明

  • 你之前尝试的accounts/mfaEnrollment:withdraw属于用户端API,必须携带用户的idToken才能调用,因此管理员无法使用该接口操作
  • user._data是SDK返回的本地数据副本,直接修改不会同步到服务器,必须使用官方提供的更新接口

内容的提问来源于stack exchange,提问作者Stay Funky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 17:21:12