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

Flutter集成twitter_login 4.0.1+Firebase实现Twitter登录跳转卡住问题

Twitter登录跳转卡住排查与修复方案

常见问题与修复方式

  • Deep Link未配置:你代码中使用的回调地址为Doyen://,需要分别在双端原生工程配置跳转规则,否则系统无法识别该回调、无法跳转回应用:
    • iOS端:打开ios/Runner/Info.plist,新增如下配置:
      1. 在LSApplicationQueriesSchemes数组下添加两个子项:twitter、twitterauth
      2. 新增CFBundleURLTypes节点,配置CFBundleURLSchemes为Doyen
    • Android端:打开android/app/src/main/AndroidManifest.xml,在MainActivity节点下新增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="Doyen" />
      </intent-filter>
      
  • Twitter后台配置错误:登录Twitter开发者后台,进入对应应用的设置页,确认:
    1. 3-legged OAuth开关已开启
    2. 回调地址栏已添加Doyen://,和代码配置完全一致(大小写敏感)
  • 代码逻辑错误:现有代码未校验登录状态、异步方法未加await,会导致流程异常,修正后参考代码如下:
    import 'dart:developer';
    import 'package:firebase_auth/firebase_auth.dart';
    import 'package:flutter/cupertino.dart';
    import 'package:twitter_login/twitter_login.dart';
    
    class TwitterLoginController with ChangeNotifier {
      Future<void> signInWithTwitter() async {
        final twitterLogin = TwitterLogin(
          apiKey: "替换为你重置后的API Key",
          apiSecretKey: "替换为你重置后的API Secret Key",
          redirectURI: "Doyen://",
        );
        final loginResult = await twitterLogin.login();
        switch (loginResult.status) {
          case TwitterLoginStatus.loggedIn:
            final credential = TwitterAuthProvider.credential(
              accessToken: loginResult.authToken!,
              secret: loginResult.authTokenSecret!,
            );
            await FirebaseAuth.instance.signInWithCredential(credential);
            log("Twitter登录完成");
            break;
          case TwitterLoginStatus.cancelledByUser:
            log("用户取消登录");
            break;
          case TwitterLoginStatus.error:
            log("登录失败:${loginResult.errorMessage}");
            break;
          default:
            break;
        }
        return;
      }
    }
    

额外提示

你贴出的代码中包含明文的Twitter API Key和Secret,已经泄露,请立刻前往Twitter开发者后台重置密钥,避免被盗用产生风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:24:08