Expo设备端Google登录故障:选择账号后返回type为dismiss的响应
Expo Google OAuth返回
type: "dismiss" 解决方案 出现dismiss类型响应本质是OAuth重定向回调没有被Expo Auth Session正确捕获,可按以下步骤排查修复:
- 检查Google Cloud控制台OAuth客户端ID配置
不同平台的授权重定向URI必须完全匹配要求:- Expo Go开发阶段:重定向URI必须填写
https://auth.expo.io/@你的Expo用户名/你的项目slug,用户名和slug要和本地app.json内的配置完全一致,大小写也要匹配 - 独立打包iOS/Android:需要分别配置对应平台的包名、SHA1证书指纹生成的专属重定向URI,不能直接复用Expo Go的地址
- Expo Go开发阶段:重定向URI必须填写
- 修正
promptAsync调用参数
开发阶段在Expo Go内运行必须开启代理,不要直接调用空参数的方法,修改按钮触发代码:onPress={() => { promptAsync({ useProxy: true }); }} - 补充
app.json的scheme配置
在app.json的expo字段下添加自定义scheme,值为项目专属的唯一字符串即可:{ "expo": { "scheme": "your-custom-project-scheme" } } - 修正客户端ID参数
不要给四个平台的clientId参数填同一个值,不同平台的客户端ID需要在Google Cloud控制台分别创建对应填入,仅在Expo Go测试时可以只填expoClientId,其余参数留空即可 - 清理缓存重试
上述配置都确认无误后,清空Expo Go的本地缓存,重启项目重新测试即可
内容的提问来源于stack exchange,提问作者Sam Bouguerra
相关产品推荐
相关产品推荐

