如何修复 Google expo auth session 登录错误“尝试完成登录时出现问题”

Posted

技术标签:

【中文标题】如何修复 Google expo auth session 登录错误“尝试完成登录时出现问题”【英文标题】:How to fix Google expo auth session sign in Error "Something went wrong when trying to finish signing in" 【发布时间】:2022-01-14 02:27:51 【问题描述】:

我正在尝试使用expo-auth-session 在我的博览会中实现谷歌登录, 当我点击我的 gmail 登录时,我被重定向到此 screen 并说“尝试完成登录时出现问题。请关闭此屏幕以返回应用程序”。

//Google auth code:
    import * as Google from 'expo-auth-session/providers/google';
    const [request, response, promptAsync] = Google.useAuthRequest(
        expoClientId: config.google.expoClientId,
        redirectUri: config.google.redirectUri,
      );

      React.useEffect(() => 
      //Handle google login
      console.log(response)
      if (response?.type === 'success') 
       const  authentication  = response;
       
      , [response]);

    //Button that calls the google sign in
    <Button iconName='google' iconPressed=() => promptAsync(useProxy: true) />

【问题讨论】:

这是一个未解决的问题。 Heregithub 页面。 感谢您的回复,我看过 github 但那里的评论都没有帮助我,希望这里有人可以提供一些指导。 @GiovanniEsposito 所以您已经尝试设置useProxy: false 正确吗? 我做到了,是的。 @GiovanniEsposito 【参考方案1】:

我最终使用了expo-google-app-auth,出于某种我还没有弄清楚的原因,你必须在谷歌开发者控制台中使用 host.expo.exponent 作为你的包名和包标识符,这个库才能工作。 代码:

import  Alert  from 'react-native';
import * as Google from 'expo-google-app-auth'

const GoogleLogin = async () => 
    //Get those keys from the google developer console
    const  iosClientId, androidClientId  = config.google
    const  type, user  = await Google.logInAsync(
        iosClientId,
        androidClientId,
    );

    if (type === 'success') 
        /* `accessToken` is now valid and can be used to get data from the Google API with HTTP requests */
        return  email: user.email, id: user.id 
     else 
        Alert.alert("Google login error.")
    


export default GoogleLogin;

【讨论】:

以上是关于如何修复 Google expo auth session 登录错误“尝试完成登录时出现问题”的主要内容,如果未能解决你的问题,请参考以下文章

react-native / expo / expo-google-app-auth vs expo-google-sign-in

expo-auth-session/providers/google 不适用于独立应用程序:invalid_scheme

在独立的 Android 应用程序上使用 expo-auth-session 进行 Google 登录,浏览器关闭但没有任何反应

Expo Google登录在IOS的试飞中不起作用

如何修复安装 expo-cli

修复了警告活动#com.google.firebase.auth.internal.FederatedSignInActivity@android:launchMode的标签为AndroidManif