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

Android嵌入式浏览器中使用Flutter+AWS Cognito实现Facebook登录失败

问题根因

Facebook官方从2021年开始全面封禁第三方应用通过嵌入式WebView(即你当前使用的安卓嵌入式浏览器容器)发起登录请求,属于平台级安全策略,和你已完成的AWS Cognito、Facebook后台配置无关,即使开启Facebook登录相关权限也无法绕过该限制。

报错截图如下:
Facebook嵌入式浏览器登录报错

可落地解决方案

方案1:使用符合安全规范的系统级浏览器容器(推荐)

该方案改动量最小,不需要调整现有Cognito和Facebook的后台配置:

  • 替换当前Flutter端调用嵌入式WebView的登录逻辑,改用官方维护的flutter_appauth插件完成Cognito OAuth认证流程
  • 该插件在安卓层默认使用Chrome自定义标签、iOS层使用ASWebAuthenticationSession,完全符合Facebook的登录安全要求,不会触发拦截
  • 在Cognito用户池的应用客户端设置中新增安卓端自定义回调Schema(例如yourAppSchema://callback),保证认证完成后可以正常跳转回你的应用

方案2:通过Facebook原生SDK登录后对接Cognito

如果你需要集成更多Facebook原生能力,可以选择该方案:

  • 接入flutter_facebook_auth插件完成Facebook原生登录,获取Facebook返回的访问令牌
  • 调用Cognito的initiate_auth接口,设置认证类型为联邦身份提供商认证,传入Facebook的访问令牌完成身份校验,直接获取Cognito下发的id_token、refresh_token和access_token

方案3:适配Cognito托管UI调用逻辑

如果你当前使用的是Cognito托管UI:

  • 不要在嵌入式WebView中加载托管UI地址,改用上述AppAuth方案调用托管UI即可,安卓端会自动唤起Chrome自定义标签加载页面,不会触发Facebook拦截

注意:不要尝试通过修改WebView User-Agent、注入JS等方式绕过Facebook限制,该类方案已被官方完全封堵,还会触发Facebook安全风控,存在应用被下架的风险

内容的提问来源于stack exchange,提问作者M Ali Tahir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:24:01