Firebase集成Facebook登录遇FirebaseAuthInvalidCredentialsException错误求助
Firebase Auth 集成Facebook登录时「Invalid access_token, error code 43」排查建议
针对你遇到的FirebaseAuthInvalidCredentialsException: The supplied auth credential is malformed or has expired. [ Invalid access_token, error code 43 ]错误,结合新应用可正常登录的情况,给你以下排查方向:
检查旧Facebook应用的令牌配置与权限状态
- 进入旧应用的Facebook开发者后台,在「产品」>「Facebook登录」>「设置」里,确认令牌有效期是否设置过短,或开启了特殊的自动过期规则;同时核对「OAuth客户端设置」里的重定向URI,确保和Firebase控制台配置的完全一致(注意大小写、末尾斜杠等细节)
- 查看「权限与功能」页面,确认
public_profile、email这类必要登录权限是否正常可用,有没有被平台限制或未通过审核
核对Firebase与旧应用的关联细节
- 再次确认Firebase控制台中该应用的「Facebook登录」是否处于启用状态;检查「服务账号」页面,是否存在误操作导致的Facebook登录关联权限撤销
- 确认Firebase项目的「认证」>「登录方法」里,Facebook的AppSecret是否和旧应用后台的完全匹配(注意是否有空格、特殊字符输入错误)
排查access_token的生成逻辑
- 对比新旧应用的登录代码,确认旧应用中获取Facebook access_token时,是否请求了Firebase不兼容的额外权限,或对令牌做了编码、截断等修改操作,导致格式损坏
- 调试时打印获取到的access_token,通过Facebook的调试工具验证令牌的有效性,看是否存在过期、权限不足或格式错误
检查旧应用的平台状态
- 进入Facebook应用后台的「应用审核」>「状态与审核」,确认应用是否处于开发模式但测试用户数量超限,或存在未处理的平台警告/限制
- 查看「仪表板」的「应用健康」模块,是否有近期的令牌验证失败记录,获取更具体的错误原因
清理测试环境数据
- 卸载设备上的旧应用测试版本,清除Facebook应用的缓存(若使用系统账号登录),重新安装后测试
- 在Firebase控制台删除旧应用生成的测试用户记录,重新发起登录请求
内容的提问来源于stack exchange,提问作者Rashad.Z
相关产品推荐
相关产品推荐

