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

使用自定义Token在Firebase登录时遇auth/invalid-custom-token错误

解决Firebase signInWithCustomToken返回auth/invalid-custom-token错误

问题代码

generateFirebaseSignInToken()
    .then((data) => {
      const customToken = data.data.generateFirebaseSingInToken;
      const auth = getAuth();
      signInWithCustomToken(auth,customToken)
          .then((userCredential) => {
            const user = userCredential.user;
            console.log("User successfully signed in:", user);
          })
          .catch((error) => {
            console.error("Error signing in:", error);
          });
    })
    .catch((error) => {
      console.error("Error generating token:", error);
    });

登录请求Payload

{
    "token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjYzODBlZjEyZjk1ZjkxNmNhZDdhNGNlMzg4ZDJjMmMzYzIzMDJmZGUiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vYXJjZWxpay1zdGF.........",
    "returnSecureToken": true
}

控制台报错

Error signing in: FirebaseError: Firebase: Error (auth/invalid-custom-token).

排查与解决步骤

  • 修正变量拼写错误:代码中data.data.generateFirebaseSingInToken存在拼写错误,应该是generateFirebaseSignInToken(注意是Sign而非Sing)。这个错误会导致获取到的customToken值错误或未定义,直接触发无效Token报错。
  • 验证Token签名有效性:确保自定义Token是通过Firebase Admin SDK生成的,且使用了对应项目的合法服务账号密钥。即使解码后能看到正确项目ID,签名不匹配仍会被判定为无效。
  • 检查Token有效期:自定义Token默认有效期为1小时,若生成后超过时限会失效,需重新生成。
  • 确认项目ID完全匹配:前端初始化Firebase时使用的项目ID,必须和生成自定义Token的后端项目ID完全一致,包括大小写和拼写。
  • 确保Token格式完整:获取到的customToken必须是完整的JWT字符串,不能包含额外的空格、换行符或其他字符。

内容的提问来源于stack exchange,提问作者Mustafa Kerem CANSEV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 04:40:06