如何修复 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 登录,浏览器关闭但没有任何反应
修复了警告活动#com.google.firebase.auth.internal.FederatedSignInActivity@android:launchMode的标签为AndroidManif