Android React本机OAuth2重定向\u uri:无效方案

Android React本机OAuth2重定向\u uri:无效方案,android,oauth-2.0,react-native,google-oauth,Android,Oauth 2.0,React Native,Google Oauth,最近我学习了react native,遇到了一个无法解决的问题。 我正在尝试使用我的应用程序中的gmail OAuth2作为重定向参数进行身份验证myscheme://oauth 整个url如下所示: <activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTask" android:configChanges="key

最近我学习了react native,遇到了一个无法解决的问题。 我正在尝试使用我的应用程序中的gmail OAuth2作为重定向参数进行身份验证myscheme://oauth 整个url如下所示:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </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="myscheme" android:host="oauth"/>
        </intent-filter>
      </activity>

我在manifest.xml中注册了一个意向过滤器,如下所示:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </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="myscheme" android:host="oauth"/>
        </intent-filter>
      </activity>

我正在使用react native链接打开URL,我(在浏览器中)得到的错误是重定向的400无效参数值。\u uri:无效方案:myscheme://oauth

有谁能帮我一下我这里缺少什么吗?

从中,我发现您的URL有两个问题:

  • 自定义方案必须包含有效的句点
  • myscheme
    更改为类似于
    com.myapp

  • 请注意自定义URI方案后面的单个“/”,这与常规HTTP URL不同
  • 更改<代码>myscheme://oauth...to
    myscheme:/oauth…


    在这些更正之后,您的URL应该看起来像
    com.myapp.myscheme:/oauth…
    ,而不是
    myscheme://oauth...

    我正在使用AppAuth库获取OAuth2令牌。按照谷歌的说法,这种格式对我很有效

    :/oauth2callback

    例如,如果你的应用程序id是
    com.example.app
    ,那么在你的
    AndroidManifest.xml

    <activity android:name="net.openid.appauth.RedirectUriReceiverActivity">
            <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="com.example.app" />
            </intent-filter>
    </activity>
    
    希望这对别人有帮助