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

React Native结合InAppBrowser接入Cognito Auth首次登录无回调问题求助

问题解决方案

根因定位

  • 代码层面:当前urlOpener方法中调用InAppBrowser.openAuth时未添加await关键字,异步操作未完成就结束了函数执行,导致Amplify的重定向监听逻辑未正确挂载,首次登录时系统无法触发对应intent。
  • 依赖版本bug:react-native-inappbrowser-reborn@3.6.3版本在Android 11及以上系统存在首次web会话重定向检测延迟的已知问题,会导致首次重定向回调无法正常触发。
  • 配置层面:若MainActivity的launchMode未设置为singleTask,也会导致首次intent无法正确传递到应用。

修复步骤

1. 修正异步调用逻辑

给InAppBrowser.openAuth添加await,确保异步逻辑执行完成后再结束函数,修正后的代码如下:

urlOpener: async (url, redirectSignIn) => {
  try {
    await InAppBrowser.isAvailable();
    console.log(`urlOpener: calling url: ${url}, redirectsignIn: ${redirectSignIn}`)
    // 新增await关键字
    const response = await InAppBrowser.openAuth(url, redirectSignIn, {
      dismissButtonStyle: 'cancel',
      showTitle: false,
      enableUrlBarHiding: true,
      enableDefaultShare: false,
      ephemeralWebSession: false,
      forceCloseOnRedirection: true
    });
    console.log('urlOpener: response: ', JSON.stringify(response));
    if (response.type === 'cancel') {
      console.log('urlOpener: cancel:');
      AuthStore.setIsFedratedSignIn(false);
    } else if (response.type === 'success' && response.url) {
      console.log('urlOpener: success: url: ', response.url);
      Linking.openURL(response.url);
    }
  } catch (err) {
    console.log('urlOpener: error: ', JSON.stringify(err));
  }
},

2. 修正Android配置

检查android/app/src/main/AndroidManifest.xml中MainActivity的launchMode配置,确保设置为singleTask:

<activity
  android:name=".MainActivity"
  android:launchMode="singleTask"
  ...其余配置保持不变
>

3. 依赖版本兼容修复

如果上述修改后仍存在问题,将react-native-inappbrowser-reborn升级到3.7.0及以上版本,该版本已修复Android端首次重定向检测的bug。

替代方案

如果不想继续使用web登录流,可以直接采用原生Google登录方案:

  • 使用@react-native-google-signin/google-signin依赖包直接调用原生Google登录能力,无需跳转web页面,适配性更强,不存在重定向异常问题。
  • 裸React Native项目也可使用expo-web-browser替代react-native-inappbrowser-reborn,该库对重定向的处理更稳定,和Amplify的适配性更好。

验证方法

修改完成后完全卸载测试设备上的应用,清除缓存后重装,首次触发Google登录即可验证修复效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:36:04