Expo Go中Google/Facebook OAuth出现‘Not Found’问题求助
Expo Go中OAuth重定向URI不匹配的解决方法
核心问题定位
Expo Go调试模式下,expo-auth-session会自动给重定向URI追加项目名称路径(比如你的/MyProject),但你在Google/Facebook控制台配置的是不带该后缀的URI,导致回调时地址不匹配,出现「Not Found」。
具体修复步骤
1. 同步控制台的重定向URI配置
把Expo Go实际生成的完整redirectUri(例如https://auth.expo.io/@myorg/MyProject)添加到Google和Facebook控制台的授权重定向URI列表中,同时保留原打包后可用的URI(例如https://auth.expo.io/@myorg/your-slug)。
2. 手动指定重定向URI(推荐)
在expo-auth-session的请求配置里,手动指定符合控制台配置的redirectUri,覆盖自动生成的路径:
import * as AuthSession from 'expo-auth-session'; const redirectUri = AuthSession.makeRedirectUri({ path: '', // 清空自动追加的项目路径 useProxy: true, }); // 在OAuth请求中使用该redirectUri const request = { clientId: 'YOUR_GOOGLE_CLIENT_ID', redirectUri, scopes: ['openid', 'profile', 'email'], // 其他配置项... };
3. 校验app.json的slug配置
确保app.json里的slug字段和你在Expo组织下的项目slug完全一致,Expo的重定向URI基于@组织名/slug生成,slug不匹配会直接导致路径异常。
4. 清除Expo Go缓存
完全关闭Expo Go应用,重新扫码加载项目,避免旧配置缓存影响新的重定向URI生效。
额外说明
- 打包后的生产环境不会追加项目路径,原URI配置依然有效,无需修改。
- Facebook OAuth的修复逻辑和Google完全一致,核心是保证控制台配置的URI与实际请求的URI匹配,
useProxy: true不影响该问题的修复。
内容的提问来源于stack exchange,提问作者Seth Lutske
相关产品推荐
相关产品推荐

