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

使用负载均衡器时,如何解决Firebase Admin SDK验证Token超时问题?

Firebase Admin SDK验证Token在负载均衡环境下的ETIMEDOUT问题

问题现象

单WAS服务器部署时,通过NestJS WebSocket使用Firebase Admin SDK的verifyIdToken()方法验证Token获取uid完全正常;但添加负载均衡器扩容至两台服务器后,持续出现以下错误:

错误信息

FirebaseAuthError: Error while making request: connect ETIMEDOUT

errorInfo: {
    code: 'auth/argument-error',
    message: 'Error while making request: connect ETIMEDOUT [IP Address]:443.'
}

两台服务器逻辑完全一致,仅IP不同,Token验证函数及Firebase应用初始化代码如下:

相关代码

Token验证函数

// 验证Firebase Token并返回uid
async VerifyFirebaseToken(Token: string): Promise<string> {
    try {
        const VerifiedToken = await this.firebaseVerifierApp
            .auth()
            .verifyIdToken(Token);
        return VerifiedToken.uid;
    } catch (error) {
        console.log(
            'Critical error occured!! See details below.',
        );
        console.log(error);
        return '';
    }
}

Firebase应用初始化代码

this.firebaseVerifierApp = firebase.initializeApp({
    credential: firebase.credential.cert(firebase_params),
});

用户疑问

怀疑负载均衡器无法保证Firebase验证的回调返回至请求发起的服务器,询问如何确保回调返回原服务器,或其他解决方法。


解决方法

1. 否定你的猜测:回调返回不是问题根源

verifyIdToken()是同步HTTP请求(SDK内部主动向Firebase Auth服务发起验证请求),不存在回调需要返回原服务器的逻辑——每台服务器都是独立发起请求,和负载均衡的路由规则无关。这个错误本质是服务器无法连接到Firebase Auth的服务端点(443端口)。

2. 核心排查与修复方向

  • 检查服务器网络权限:确认两台服务器的防火墙、安全组规则都允许出站访问https://www.googleapis.com(Firebase Auth的服务域名)。ETIMEDOUT说明TCP连接建立失败,大概率是网络层面的限制。
  • 核对配置一致性:确保两台服务器的firebase_params(证书文件、项目配置)完全一致,没有路径错误或配置缺失。
  • 直接测试网络连通性:在服务器上执行curl命令,验证能否正常访问Firebase Auth端点:
    curl -v https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=[你的测试Token]
    
    如果curl也超时,直接锁定网络问题;如果curl正常,再排查NestJS/WebSocket的网络代理配置。
  • 升级SDK版本:检查两台服务器的Firebase Admin SDK版本是否一致,旧版本可能存在已知的网络请求bug,执行命令升级到最新稳定版:
    npm install firebase-admin@latest
    

3. 额外优化建议

  • 开启SDK调试日志,获取更详细的请求细节:
    import * as admin from 'firebase-admin';
    admin.initializeApp({...});
    admin.logger.setLevel('debug');
    
  • 对Token验证结果做本地缓存(比如用Redis),减少频繁向Firebase Auth发起请求,降低网络依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:06:06