带有Amplify的GraphQL为React应用程序提供了401未授权(在使用Cognito添加Auth之前和之后)



我正在尝试使用Amplify,并试图创建我的第一个react应用程序,以获取简单的Ride模型。

我总是在本地主机上和托管到S3后收到401未经授权的错误。

errorType: "UnauthorizedException"
message: "You are not authorized to make this call."

@SlackGadget的解决方案基本上是正确的。

AppSync API密钥的默认过期时间为7天,这意味着如果您没有在Amplify构建的初始congif中设置此密钥或使用不同类型的身份验证,则API将在7天后过期。如果在此时间范围内部署,则会生成一个新密钥,但如果不检查AppSync,则不会出现真正的警告。

要进行检查,请执行以下步骤:

  1. 转到AWS AppSync
  2. 单击有问题的应用程序
  3. 单击侧导航中的设置
  4. 根据aws-exports.js文件中显示的内容检查密钥,如果密钥已过期,则会出现问题

解决方案:

  1. 要最初修复它,请从Amplify控制台重新部署您的应用程序,使其启动并运行以防止401错误
  2. 然后在本地更新API,转到<project-root>/amplify/backend/api/<api-name>/parameters.json文件并添加APIKeyExpirationEpoch密钥。这需要密钥的过期时间(秒(。然后您可以部署它,新密钥将有一个新的到期日期
  3. 您也可以在AppSync设置中更新过期密钥

以下是用于覆盖Amplify参数的文档:https://docs.amplify.aws/cli-legacy/graphql-transformer/resolvers/#custom-解析器

最新更新