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

Flutter应用Firebase Auth集成Facebook登录遇Error Code 190求助

解决Firebase Auth Facebook登录错误码190(Bad signature)的方案

针对你遇到的{"code":190,"message":"Bad signature"}错误,以下是强制Firebase获取新Facebook访问令牌的具体操作:

1. 彻底清除本地旧令牌缓存

先通过代码完成双重登出,确保本地缓存的过期令牌被清空:

// 登出Facebook
await FacebookAuth.instance.logOut();
// 登出Firebase
await FirebaseAuth.instance.signOut();

完成后关闭并重启应用,再尝试重新发起登录流程。

2. 强制Facebook重新授权获取新令牌

调用Facebook登录时,指定authType: 'reauthenticate'参数,强制用户重新授权,确保生成全新的访问令牌:

final LoginResult result = await FacebookAuth.instance.login(
  permissions: ['email', 'public_profile'],
  authType: 'reauthenticate', // 强制重新授权
);

如果使用的是flutter_facebook_auth的其他登录方式,也需要确保触发重新授权的逻辑,避免复用旧令牌。

3. 手动触发Firebase令牌刷新

如果登录后仍存在令牌问题,可以手动强制Firebase刷新用户令牌:

final user = FirebaseAuth.instance.currentUser;
if (user != null) {
  // 强制刷新令牌,参数true表示忽略缓存
  final newIdToken = await user.getIdToken(true);
  // 可以输出令牌信息确认是否更新
  print('新令牌: ${newIdToken.token}');
}

4. 检查Facebook应用配置细节

  • 进入Facebook开发者控制台,确认应用的访问令牌有效期设置(路径:应用设置→高级→安全),避免设置过短的有效期;
  • 验证应用的密钥哈希(Key Hash)是否与Firebase控制台中填写的完全一致,建议重新生成并同步两边的哈希值;
  • 确认OAuth设置中的“有效OAuth重定向URI”包含Firebase提供的回调地址(可在Firebase控制台的Facebook认证配置页查看)。

额外注意事项

确保flutter_facebook_auth包版本与firebase_auth:5.1.1兼容,建议升级到最新稳定版,避免因版本不匹配导致的令牌处理异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:14:55