我只希望经过身份验证的用户修改数据库中的类。 例如:
Parse.Cloud.beforeSave(("anything (I don't know how") => {
// Something like this
if (!verify(request.user)) {
response.error("Not authenticated / Token is invalid");
return
}
// ...
response.success();
});
你有什么想法吗? 请注意,这是我第一次使用Parse。
答案 0 :(得分:0)
您需要实现这样的verify()
函数:
function verify(user) {
var sessionToken = user.getSessionToken();
if(!sessionToken)
return Promise.resolve(false);
else
{
var query = new Parse.Query(Parse.Object.extend("_Session"));
return query.first({useMasterKey:false, sessionToken:sessionToken })
.then(function(validSessionToken){
//User is signed in, and has a valid token (not expired yet)
return true;
})
.fail(function(){
//User doesn't have a valid sessionToken
return false;
});
}
}
想法是"验证" sessionToken通过向_Session类发出查询,查找与Request对象具有相同sessionToken的_Session对象,而不是使用MASTER_KEY。
如果sessionToken存在,将返回它,因为它具有使用MASTER_KEY访问的ACL和具有当前sessionToken的用户。
在查询中使用sessionToken而不是MASTER_KEY,除了那个之外,你将永远无法看到其他sessionTokens。