如何修复Expo中Google认证报错‘完成登录时出现问题’
Google登录重定向报错解决指南
问题场景
点击登录按钮后,被重定向至提示界面,显示“完成登录时出现问题,请关闭此界面返回应用”,关联代码如下:
import * as Google from 'expo-auth-session/providers/google'; const [request, response, promptAsync] = Google.useAuthRequest({ expoClientId: config.google.expoClientId, androidClientId: config.google.androidClientId, }); React.useEffect(() => { // 处理Google登录 console.log(response) if (response?.type === 'success') { const { authentication } = response; } }, [response]); // 触发Google登录的按钮 <Button title="login" onPress={() => promptAsync({useProxy: false, showInRecents: true })} />
排查修复步骤
- 核对Client ID配置
确认expoClientId和androidClientId与Google Cloud控制台创建的OAuth 2.0客户端ID完全一致,注意区分Expo客户端和Android原生客户端的ID,避免混淆。 - 检查OAuth同意屏幕设置
若应用处于测试模式,需在Google Cloud控制台的OAuth同意屏幕中添加测试用户;同时确认已勾选profile、email等必要授权范围。 - 调整
useProxy参数
如果你在Expo Go客户端中测试,需将useProxy: false改为useProxy: true——Expo Go依赖代理处理OAuth重定向,仅当构建独立APK时适合使用useProxy: false。 - 验证重定向URI
Android客户端的重定向URI需遵循格式com.your.app.package:/oauthredirect,其中com.your.app.package要与app.json中android.package的包名完全匹配,且已在Google Cloud控制台配置。 - 分析日志报错
查看response的完整日志,response.error字段会包含具体错误原因(如权限不足、Client ID无效等),根据提示针对性修复。
内容的提问来源于stack exchange,提问作者Aziza
相关产品推荐
相关产品推荐

