You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo Google认证模拟器正常,Expo Go及独立应用无法使用求助

Expo Google认证手机端失效问题解决

核心原因

报错提示的本质是Google OAuth 2.0安全策略校验不通过,模拟器能正常运行是因为调试环境的校验逻辑更宽松,而手机端(Expo Go/独立应用)需要严格匹配Google Cloud控制台的配置。

具体修复步骤

  • 核对Google Cloud控制台的客户端ID配置

    • 确保androidClientId对应Google Cloud中创建的Android类型客户端ID,而非Web或其他类型。创建时需填写正确的SHA-1指纹:
      • Expo Go环境:使用Expo官方固定SHA-1指纹:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
      • 独立打包应用:通过expo credentials:manager命令或Android Studio生成自己应用的SHA-1指纹
    • 复制客户端ID时确保无字符遗漏或错误。
  • 补充必要的认证配置参数
    你的代码缺少scopes权限范围和redirectUri回调地址配置,会导致认证流程不完整,修改后代码如下:

    import * as GoogleSignIn from 'expo-auth-session/providers/google';
    import * as WebBrowser from 'expo-web-browser';
    import { useEffect } from 'react';
    
    WebBrowser.maybeCompleteAuthSession();
    
    const [request, response, promptAsync] = GoogleSignIn.useAuthRequest({
      expoClientId: '你的Expo客户端ID',
      androidClientId: '你的Android客户端ID',
      scopes: ['profile', 'email'], // 指定必要的权限范围
      redirectUri: GoogleSignIn.makeRedirectUri({
        useProxy: true, // 适配Expo Go和独立应用的通用配置
      }),
    });
    
    useEffect(() => {
      if (response?.type === 'success') {
        const { authentication } = response;
        // 此处处理认证成功后的逻辑,比如获取用户信息
      }
    }, [response]);
    
  • 验证OAuth同意屏幕配置
    在Google Cloud控制台的「OAuth同意屏幕」中,确认已填写应用名称、隐私政策链接(公开应用必填),并将测试用户添加至列表(未发布应用仅允许测试用户登录,否则会触发安全报错)。

  • 独立应用额外配置检查

    • 在app.json中确认Android的package名称,需与Google Cloud中Android客户端ID的「应用包名」完全一致
    • 执行expo prebuild或expo build:android前,确保所有配置已同步生效

内容的提问来源于stack exchange,提问作者Abdus Sattar Nishad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:39:18