当你在使用 Amplify GraphQL API 时遇到“未被授权访问创建”错误,可能是因为你没有正确配置授权规则。以下是解决该问题的一些步骤和代码示例:
amplify status
如果 GraphQL API 未添加,请使用以下命令添加:
amplify add api
然后按照提示选择相应的选项进行配置。
@auth 指令来定义授权规则。例如,以下示例代码演示了如何限制只有授权用户可以创建和访问某个类型的数据:type Post @model @auth(rules: [{ allow: owner }]) {
id: ID!
title: String!
content: String!
owner: String
}
在上述代码中,@auth 规则定义了只有所有者才能访问和创建 Post 类型的数据。
amplify auth
如果身份验证提供程序未添加,请使用以下命令添加:
amplify add auth
然后按照提示选择相应的选项进行配置。
import Amplify from 'aws-amplify';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
// 对于 React 应用程序,你可以在入口文件中添加以下代码来进行身份验证:
import { withAuthenticator } from '@aws-amplify/ui-react';
// 使用 withAuthenticator 高阶组件包装你的组件,以启用身份验证
export default withAuthenticator(App);
确保你的应用程序代码中正确使用了 Amplify 提供的身份验证组件。
通过按照上述步骤进行检查和配置,你应该能够解决“未被授权访问创建”错误,并正确使用 Amplify GraphQL API 进行创建操作。