AWS Cognito 社交登录 (react-native)

时间:2021-06-01 11:03:51

标签: react-native oauth amazon-cognito

在 react-native 应用程序上,我们正在尝试实现社交登录。对于 IOS,它工作正常,但对于谷歌或 Facebook 登录后的 android,我遇到以下错误并且应用程序崩溃。请让我知道我在做什么错误。

[Tue Jun 01 2021 16:18:11.689]  LOG      cognito parsingCallbackUrl {"url": null}
[Tue Jun 01 2021 16:18:11.690]  LOG      parsingCallbackUrl {"url": null}
[Tue Jun 01 2021 16:18:13.581]  LOG      URLS https://myappf2077acb-f2077acb-dev.auth.ap-southeast-1.amazoncognito.com/oauth2/authorize?redirect_uri=myapp%3A%2F%2F&response_type=code&client_id=7kpeug5cf2tdb7ri3n1tceubrb&identity_provider=Google&scope=phone%20email%20openid%20profile%20aws.cognito.signin.user.admin&state=eXavpAJAD7x8RhGY5HQQGuHV1BMjOrfS&code_challenge=9jig9ys6LEqbuWlcHKbFoaGvnBISoFqYHN7VICSwwPo&code_challenge_method=S256 Redirect myapp://
[Tue Jun 01 2021 16:18:14.793]  LOG      cognito parsingCallbackUrl {"url": "myapp://?code=210db3a4-1e90-4a64-b16d-1bb4c45d2760&state=eXavpAJAD7x8RhGY5HQQGuHV1BMjOrfS"}
[Tue Jun 01 2021 16:18:14.794]  LOG      parsingCallbackUrl {"url": "myapp://?code=210db3a4-1e90-4a64-b16d-1bb4c45d2760&state=eXavpAJAD7x8RhGY5HQQGuHV1BMjOrfS"}
[Tue Jun 01 2021 16:18:14.797]  LOG      cognito codeFlow {}
[Tue Jun 01 2021 16:18:14.803]  LOG      codeFlow {}
[Tue Jun 01 2021 16:18:15.320]  ERROR    [ERROR] 18:14.429 OAuth - Error handling auth response. [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.407]  LOG      cognito signIn_failure [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.408]  LOG      signIn_failure [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.441]  LOG      cognito cognitoHostedUI_failure [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.442]  LOG      Sign in failed [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.443]  LOG      cognito customState_failure [TypeError: Network request failed]
[Tue Jun 01 2021 16:18:15.445]  LOG      customState_failure [TypeError: Network request failed]

PFB 我的配置细节

const awsmobile = {
  aws_project_region: 'XXXXXXXX',
  aws_cognito_identity_pool_id:
    'XXXXXXXX',
  aws_cognito_region: 'XXXXXXXX',
  aws_user_pools_id: 'XXXXXXXX',
  aws_user_pools_web_client_id: 'XXXXXXXX',
  oauth: {
    domain: 'XXXXXXXX-southeast-1.amazoncognito.com',
    scope: [
      'phone',
      'email',
      'openid',
      'profile',
      'aws.cognito.signin.user.admin',
    ],
    redirectSignIn: 'myapp://',
    redirectSignOut: 'myapp://',
    responseType: 'code',
  },
  federationTarget: 'COGNITO_USER_POOLS',
};

export default awsmobile;

2 个答案:

答案 0 :(得分:1)

将以下几行添加到 android/app/build.gradle 后问题得到解决

'''

compile "com.squareup.okhttp3:okhttp:4.2.1"

compile "com.squareup.okhttp3:logging-interceptor:4.2.1"

compile "com.squareup.okhttp3:okhttp-urlconnection:4.2.1"

'''

答案 1 :(得分:0)

您是否在 Android 上启用了深层链接? https://reactnative.dev/docs/linking

<activity
  android:name=".MainActivity"
  android:launchMode="singleTask">