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

使用AWS Amplify登录React Native Expo项目时遇未知错误求助

Expo + AWS Amplify 登录未知错误排查方案

1. 核对用户状态与认证配置

  • 确认用户已完成邮箱验证:登录AWS控制台的Cognito用户池,查看目标用户的状态是否为已确认,避免验证状态未同步的情况。
  • 检查用户池登录选项:确保已开启允许用户名/邮箱登录,若配置为仅允许用户名登录,用邮箱作为username参数会触发错误。

2. 输出完整错误详情

当前catch块仅打印表层错误信息,修改代码获取更精准的错误细节:

catch (e: any) {
  console.log("登录错误详情:", JSON.stringify(e, null, 2));
  console.log("错误码:", e.code, "错误信息:", e.message);
}

常见隐藏错误可能是UserNotConfirmedException(验证状态延迟)、InvalidPasswordException或NotAuthorizedException。

3. 验证Amplify配置与版本

  • 确认amplifyconfiguration.json中的userPoolId、userPoolWebClientId、region与AWS控制台配置完全一致。
  • 锁定兼容的依赖版本:Expo项目中,AWS Amplify版本需与Expo SDK匹配,建议使用稳定版本:
{
  "dependencies": {
    "aws-amplify": "^5.3.11",
    "@aws-amplify/ui-react-native": "^1.2.28"
  }
}

执行npm install更新依赖后重启项目。

4. 检查网络与权限

  • 确认设备网络正常,可尝试访问https://cognito-idp.你的区域.amazonaws.com验证Cognito端点连通性。
  • 确保Expo项目已配置网络权限:在app.json中添加:
{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSAppTransportSecurity": {
          "NSAllowsArbitraryLoads": true
        }
      }
    },
    "android": {
      "permissions": ["INTERNET"]
    }
  }
}

5. 用CLI测试基础流程

通过Amplify CLI直接测试登录,排除代码层面问题:

amplify auth signin --username 你的邮箱 --password 你的密码

若CLI登录报错,问题出在Cognito配置或用户状态;若CLI登录成功,回到代码检查参数传递是否有误。


内容的提问来源于stack exchange,提问作者Hassan Ansari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:44:57