我正在尝试使用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,则不会出现真正的警告。
要进行检查,请执行以下步骤:
- 转到AWS AppSync
- 单击有问题的应用程序
- 单击侧导航中的设置
- 根据
aws-exports.js
文件中显示的内容检查密钥,如果密钥已过期,则会出现问题
解决方案:
- 要最初修复它,请从Amplify控制台重新部署您的应用程序,使其启动并运行以防止401错误
- 然后在本地更新API,转到
<project-root>/amplify/backend/api/<api-name>/parameters.json
文件并添加APIKeyExpirationEpoch
密钥。这需要密钥的过期时间(秒(。然后您可以部署它,新密钥将有一个新的到期日期 - 您也可以在AppSync设置中更新过期密钥
以下是用于覆盖Amplify参数的文档:https://docs.amplify.aws/cli-legacy/graphql-transformer/resolvers/#custom-解析器