我的 Vuejs 网站上有一个页面,允许用户更新他们的个人资料详细信息,包括名字、姓氏、电子邮件地址和电话号码。当用户提交表单时,会调用 aws-amplify api 的端点 graphqlOperation()。
API.graphql(graphqlOperation(updateUser, { input: newUserDetails }))
其中 updateUser 突变定义如下...
export const updateUser = /* GraphQL */ `
mutation UpdateUser(
$input: UpdateUserInput!
$condition: ModelUserConditionInput
) {
updateUser(input: $input, condition: $condition) {
id
userName
firstName
lastName
email
phoneNumber
userDetails
userNotes
role
_version
_deleted
_lastChangedAt
createdAt
updatedAt
}
}
newUserDetails 如下...
const newUserDetails = {
id: 17347,
firstName: 'Sally',
lastName: 'Smith',
email: '[email protected]',
phone: '+19827772222',
}
我正在使用 AWS Amplify/Cognito 进行身份验证。
为什么提交此表单会导致 401 未经授权的错误?
如果此错误是由于我的 Cognito 用户组权限错误造成的,请链接文档解释如何允许此用户组调用此突变函数。
如果您配置了多种身份验证模式,那么您需要指定 Cognito:
const newArtist = await API.graphql({
query: updateUser,
variables: {input: user},
authMode: 'AMAZON_COGNITO_USER_POOLS'
});
小心你没有限制这样的财产
所有者:String @auth(规则:[{允许:所有者,操作:[读取,创建]}])
并尝试删除父级,当属性没有删除操作时,这将阻止父级被删除。