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

Flutter安卓端Coinbase OAuth2登录遭遇Chrome URI拦截问题求助

Flutter集成Coinbase OAuth2安卓端认证卡住解决方案

问题根因

安卓移动端Chrome的混合内容安全策略限制导致:Coinbase的OAuth授权页运行在HTTPS安全环境下,你配置的重定向URI为自定义Scheme格式my.myapp.app://myapp-oauth,Chrome会将非HTTPS开头的跳转目标判定为不安全端点,直接拦截跳转操作,不会触发应用的回调接收逻辑,因此页面卡在处理状态。Firefox移动端无该严格限制,因此可以正常运行。

可落地解决方案

  • 方案1:替换重定向URI为HTTPS格式
    将Coinbase后台配置的重定向URI从自定义Scheme改为HTTPS开头的地址,例如https://my.myapp.app/oauth/callback,安卓端对应配置App Links关联该域名与你的应用,iOS端配置Universal Links匹配该地址,即可避开Chrome的安全拦截,跳转可正常触发。
  • 方案2:调整flutter_web_auth安卓端调用逻辑
    修改安卓端集成代码,强制使用Custom Tabs模式打开授权页,Custom Tabs的跳转规则与普通系统浏览器不同,不会拦截合法的应用自定义Scheme跳转。
  • 方案3:完善安卓清单文件配置
    在android/app/src/main/AndroidManifest.xml中添加queries声明,明确告知系统你的应用需要接收对应自定义Scheme的回调:
<queries>
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="my.myapp.app" />
    </intent>
</queries>

同时确认接收OAuth回调的Activity的intent-filter配置正确:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data
        android:scheme="my.myapp.app"
        android:host="myapp-oauth" />
</intent-filter>

注意:如果选择保留自定义Scheme方案,需要确认Coinbase后台的OAuth重定向URI配置与代码中传入的redirect_uri完全一致,末尾是否带斜杠、大小写都要完全匹配,否则也会出现跳转失败问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:45:04