gpt4 book ai didi

parse-platform - 限制用户更新某些字段但允许后端编辑它们

转载 作者:行者123 更新时间:2023-12-04 18:39:48 24 4
gpt4 key购买 nike

我在 User 模型上存储了一些不应由用户自己编辑的字段,而应仅由后端更新。所以我在 beforeSave 上做验证:

// import all models
var Models = require('cloud/models/index');

// Models.User is a subclass of Parse.User
Parse.Cloud.beforeSave(Models.User, function (request, response) {
var user = request.object;

// prevent numberOfApples from being modified on clients
if(user.existed()) {
if(user.dirty('numberOfApples')) {
response.error('User is not allowed to modify numberOfApples.');
return;
}
}

response.success();
});

所以我检查模型之前是否存在,这很重要,所以这些东西不会在注册时触发。但是后来我尝试从 Parse 仪表板手动更新该字段并引发错误。我如何确保只有用户被禁止编辑此字段,而仪表板或后端可以这样做(显然在使用主 key 时)。

最佳答案

原来Request.master是去这里的方式。我允许在使用主 key 时更改锁定的字段。

例子:

Parse.Cloud.beforeSave(Models.User, function (request, response) {
var user = request.object;

// prevent system managed fields from being modified on clients
if(user.existed()) {
// we can change those fields when using master key.
if(!request.master) {
var privateFields = [ 'gold', 'skillLevel', 'weaponCount' ];
for(var i = 0, c = privateFields.length; i < c; i++) {
var field = privateFields[i];

if(user.dirty(field)) {
response.error('User is not allowed to modify ' + field + '.');
return;
}
}
}
}

response.success();
});

关于parse-platform - 限制用户更新某些字段但允许后端编辑它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com