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

Google登录集成报错:Firebase ID Token的aud声明不匹配

解决Firebase ID Token验证时的"Audience"声明不匹配问题

错误信息

Firebase ID token的"aud"(受众)声明不正确,预期值为"test-f2978",实际得到"583659997900-tiqii1rc4mjsle349h42nq117h36fvbb.apps.googleusercontent.com"。请确保ID token与用于验证的Firebase项目一致。

问题原因

后端用Firebase Admin SDK验证的是Firebase ID Token,但当前前端获取的是Google原生OAuth ID Token:

  • Firebase ID Token的aud字段是Firebase项目ID(即错误提示里的test-f2978)
  • Google原生ID Token的aud字段是Google OAuth客户端ID(即前端配置的webClientId)
    两者不匹配导致验证失败。

解决方案

前端修改:获取Firebase ID Token

需要通过Firebase Auth将Google登录凭证转换为Firebase ID Token,步骤如下:

  1. 先初始化Firebase Auth(替换为你的项目配置):
import { initializeApp } from "firebase/app";
import { getAuth, signInWithCredential, GoogleAuthProvider } from "firebase/auth";

const firebaseConfig = {
  apiKey: "你的API_KEY",
  authDomain: "你的AUTH_DOMAIN",
  projectId: "test-f2978", // 必须与后端预期的aud值一致
  storageBucket: "你的STORAGE_BUCKET",
  messagingSenderId: "你的SENDER_ID",
  appId: "你的APP_ID"
};

const app = initializeApp(firebaseConfig);
const auth = getAuth(app);
  1. 修改登录逻辑,转换并获取Firebase ID Token:
const handleGoogleLogin = async () => {
  setIsLoading(true);
  try {
    await GoogleSignin.hasPlayServices({ showPlayServicesUpdateDialog: true });
    const response = await GoogleSignin.signIn();
    
    // 将Google登录凭证转为Firebase认证凭证
    const googleCredential = GoogleAuthProvider.credential(response.data.idToken);
    // 通过Firebase Auth完成登录
    const userCredential = await signInWithCredential(auth, googleCredential);
    // 获取Firebase ID Token
    const idToken = await userCredential.user.getIdToken();
    
    console.log("Firebase ID Token:", idToken);
    const authToken = await signIn(idToken); 
    console.log(authToken);
  } catch (error) {
    console.error(error);
  } finally {
    setIsLoading(false);
  }
};

后端配置确认

确保后端使用的firebase-admin-sdk.json属于test-f2978这个Firebase项目,项目ID需与前端firebaseConfig中的projectId完全一致。

内容的提问来源于stack exchange,提问作者Mohit Ratan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:54:51