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

React+GraphQL向DynamoDB传数据时遇No credentials错误求助

解决AWS Amplify调用GraphQL Mutation时的「Error: No credentials」问题

针对你调用createPerson mutation时出现的无凭证错误,以下是直接有效的排查和解决步骤:

1. 确认Amplify已在项目中正确初始化

你的React项目入口文件(如index.js或App.js)必须包含Amplify初始化代码,确保加载核心配置:

import Amplify from 'aws-amplify';
import awsconfig from './aws-exports';

Amplify.configure(awsconfig);

同时要保证项目根目录存在aws-exports.js文件——这是amplify init生成的核心配置文件,缺失或配置错误会直接导致凭证加载失败。如果没有该文件,重新执行amplify init完成初始化流程。

2. 检查GraphQL API的授权模式

默认创建的Amplify GraphQL API可能使用「Amazon Cognito User Pool」授权,这种模式要求用户登录才能调用mutation。若你是未登录状态操作,需修改API授权设置:

  • 执行命令amplify update api,选择「GraphQL」类型
  • 选择「Edit authorization modes」,添加或切换到「API key」授权模式
  • 完成配置后执行amplify push,将更新同步到云端

3. 验证API Key的有效性(若使用API Key授权)

如果采用API Key模式,检查aws-exports.js中的aws_appsync_apiKey是否有效:

  • 登录AWS控制台,进入AppSync服务,找到你的API,查看「Settings」中的API Key状态
  • 若Key已过期,点击「Create API Key」生成新Key,更新到aws-exports.js中,或执行amplify pull拉取最新配置

4. 调用API时显式指定授权模式

可以在调用API.graphql时直接指定授权模式,强制使用正确的凭证方式,修改你的addPerson函数:

async function addPerson() {
    console.log(name, phone, email, address);
    try{
      const entry ={ name, phone, email, address };
      let response = await API.graphql({
        query: createPerson,
        variables: { input: entry },
        authMode: 'API_KEY' // 根据你的授权模式调整,比如'AMAZON_COGNITO_USER_POOLS'(需登录)
      });
      console.log(response.data);
    }
    catch(error){
      console.log(error);
    }
}

5. 清除缓存并重建项目

缓存可能导致配置未生效:

  • 删除项目根目录的node_modules和package-lock.json,重新执行npm install
  • 清除浏览器缓存,或使用无痕模式测试
  • 执行amplify clean后重新执行amplify push同步配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:30:22