使用 Expo-auth-session 进行开发设置的 Google 重定向 URL

问题描述 投票:0回答:1

我正在尝试让 Oauth 流程在使用 React Native 和“expo-auth-session”库构建的移动应用程序上运行,该库对 Google OAuth 具有开箱即用的支持。请参阅https://docs.expo.dev/guides/google-authentication

如果我们输入“com.mydomain.myapp:/oauth”等生产值,重定向 URI 就可以工作,但 expo-auth-session 库提供了使用本地 HTTP 服务器在本地运行开发应用程序的工具。在这种情况下,重定向 URI 值需要类似于“exp://192.168.128.57:19000/--/oauth2”,谷歌不允许这样做,因为我们收到错误“访问被阻止:授权错误” - “错误 400:无效的请求”。请注意,我们还尝试使用带有重定向 uri 的 localhost,例如“exp://localhost:19000/--/oauth2”,这也会导致 400 错误。

 const redirectUri = makeRedirectUri({
    scheme: 'com.mydomian.myapp',
    path: '/oauth2',
    preferLocalhost: true  // also tried false
  });


  const [request, response, promptAsync] = Google.useAuthRequest({
    androidClientId: ANDROID_CLIENT_ID,
    iosClientId: IOS_CLIENT_ID,
    redirectUri: redirectUri,
    scopes: ["profile", "email"]
  }, {
    useProxy: false
  });
react-native google-oauth google-signin expo-auth-session
1个回答
0
投票

从我的exp来看,在您正在使用的expo版本上(应该是49或50),expo允许您仅在开发版本中使用正常的重定向URi才能在模拟器中工作。

开发构建意味着您应该运行脚本expo run:ios,并安装包expo-dev-client。 我还使用带有设置 oauth 代理的 expo 帐户来在本地处理该问题。 https://auth.expo.io/

© www.soinside.com 2019 - 2024. All rights reserved.