我试图从parse.com的_User表中删除一个用户,但我得到一个错误。
我确定请求的语法是正确的,我得到这个错误:
code: 206
error: "Parse::UserCannotBeAlteredWithoutSessionError"
我认为我不应该做登录来删除用户,因为我在API REST上做它。
$scope.delete = function (id) {
$http({
method: "DELETE",
url: url_users + id,
headers: {'X-Parse-Application-Id': appId,
'X-Parse-REST-API-Key': restId}
}).success(function (data) {
debugger;
swal("Deleted!", "All user data has been deleted", "success");
}).error(function (data) {
debugger;
swal("Error!", "An unexpected error ocurred, try again!", "error");
});
}
您正在尝试从不同的用户会话中删除一个用户。即使在头文件中使用X-Parse-REST-API-Key,这也不能从REST API中工作。解决方案是使用Clode Code Function从另一个会话中删除或更新用户。
有关更多信息,请参阅文档解析云代码指南
下面的响应是删除用户的Code Clode函数:
Parse User Destroy - Javascript in Cloud Code
我还没有试过这样做,但我有这些想法:
- 确保你的ACL允许公共
- 是否不允许调用云代码函数?在这种情况下,我觉得这比使用API更直观。你能解释一下为什么必须使用REST API吗?
- 如果这不起作用,看看这个答案:https://www.parse.com/questions/delete-a-user-rest-api
基本上,您可能必须传递主密钥标头,这不是向公众公开的理想方法。