Expo 集成 Google 账号登录可选库选型及相关报错问题咨询
Expo 应用接入Google账号登录最优解决方案
问题根因
- 旧版
expo-google库已官方废弃,仅适配开发调试场景,未配置生产环境重定向URI就会抛出redirect_uri_mismatch错误 expo-google-sign-in依赖设备内置GMS服务,未预装GMS的模拟器默认无法运行,调试门槛较高- 执行
expo eject后仍报错不支持自定义原生模块,是因为 eject 后仍使用 Expo Go 运行项目,Bare 工作流必须通过 Android Studio/Xcode 编译原生包才能加载自定义原生模块
推荐使用方案
优先选择 Expo 官方当前主推的 expo-auth-session 实现Google登录,无需eject,兼容开发、生产全场景,调试门槛更低:
- 安装依赖
执行命令:npx expo install expo-auth-session expo-crypto expo-web-browser - 配置OAuth凭据
在Google Cloud控制台创建OAuth客户端ID,按场景配置重定向URI即可:
- 开发环境(Expo Go运行):重定向URI填
https://auth.expo.io/@你的Expo用户名/你的项目Slug - 安卓生产环境:重定向URI填
com.你的应用包名:/oauthredirect,同时上传应用签名的SHA1值到Google Cloud后台 - iOS生产环境:重定向URI填
你的应用Bundle ID:/oauthredirect
- 代码接入
直接使用库提供的useAuthRequest钩子发起OAuth请求,权限范围按需配置email、profile等即可,无需额外原生配置。
该方案无需预装GMS,模拟器只要安装了Chrome就能正常调试,生产环境打包成独立应用后也不会出现重定向URI不匹配的问题。
如果坚持使用原生Google Sign In方案,eject后不要使用Expo Go运行项目,直接用Android Studio打开安卓目录、Xcode打开iOS目录编译运行即可正常加载原生模块。
内容的提问来源于stack exchange,提问作者Adam Szymański
相关产品推荐
相关产品推荐

