问题描述
我正在使用 nodejs 服务器端,当用户验证他的手机号码时,我需要更新用户类的属性;
我的代码:
/****************** Initialization ***********************/
Parse.initialize("appid","JscriptKey","masterKey");
Parse.serverURL = env.HOST_SERVER + env.PARSE_MOUNT+""
/******************* update user *****************/
router.post('/updateUser',async (request,res) => {
let post_data = request.body;
let phone = post_data.phoneNb;
const currentUser = await Parse.User.logIn("myusername","mypw");
if(currentUser){
var usersQuery = new Parse.Query(Parse.User);
usersQuery.equalTo("phone",phone);
var user = await usersQuery.first();
console.log("Useresults:");
console.log(user);
user.set("isSmsverified",true)
user.save({useMasterKey : true}).then((gamescore) => {
res.send('changes');
},(error) => {
res.send(error);
});
}else{
res.send('error')
}
})
但是当我尝试这段代码时,我得到了:
{ "message": "无法修改用户 XfcbZ9i9XK。",“代码”:206 }
我知道问题出在 ACL 访问上,但我不知道如何解决。
解决方法
好的,我找到了一个解决方案,我需要将 {useMasterKey : true} 添加到 save() 函数中,例如:
user.save(null,{useMasterKey : true})