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

Flutter集成Supabase时自定义Deep-Link触发AuthException错误求助

解决Supabase-Flutter拦截自定义DeepLink抛出"No access_token detected"异常的问题

问题原因

Supabase-Flutter的SupabaseDeepLinkingMixin默认会监听所有传入的DeepLink,不管该链接是否为OAuth回调请求。当自定义业务DeepLink被传入时,Mixin会尝试解析OAuth所需的access_token参数,找不到就抛出未处理的AuthException,Debug模式下直接中断运行——即使自定义链接最终能被业务逻辑处理,异常也会干扰开发流程。

解决方案

1. 重写Supabase的DeepLink处理逻辑(核心解决方法)

在你的SupabaseAuthState子类中重写handleDeeplink方法,提前过滤仅处理Supabase OAuth回调链接,非回调链接直接跳过Supabase的处理流程:

@override
Future<void> handleDeeplink(Uri uri) async {
  // 替换为你在Supabase控制台配置的OAuth回调路径前缀
  const supabaseCallbackPath = '/auth/v1/callback';
  
  // 仅处理Supabase OAuth回调链接,其他链接直接返回
  if (!uri.path.startsWith(supabaseCallbackPath)) {
    return;
  }
  
  // 符合回调规则的链接,交给Supabase原逻辑处理
  await super.handleDeeplink(uri);
}

这个方法会先判断链接路径是否匹配Supabase OAuth回调的默认路径(通常是/auth/v1/callback,如果你自定义了回调路径,替换成对应的前缀即可),非匹配链接不会触发Supabase的token解析逻辑,也就不会抛出异常。

2. 优化Android Intent Filter配置(辅助隔离)

虽然你已经用了不同Scheme,但可以进一步明确Intent Filter的匹配规则,减少系统误分发的可能:

  • 把Supabase OAuth回调的Scheme单独放在一个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" />
  <!-- 仅匹配Supabase OAuth回调链接 -->
  <data android:scheme="de.my.package" android:pathPrefix="/auth/v1/callback" />   
</intent-filter>
  • 自定义业务DeepLink的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="http" android:host="my.hos" />
  <data android:scheme="https" android:host="my.hos" />
</intent-filter>

关于错误的补充说明

  • 错误严重性:Debug模式下会直接中断运行,严重影响开发效率;Release模式下未处理的异常可能导致App崩溃,因此必须处理,不能忽略。
  • Release模式能否忽略:不能,Flutter的未处理异常在Release环境中会触发App崩溃,必须通过上述方法拦截异常触发的源头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:47:36