如何在解析中使用带 Node.js 的 useMasterKey?
How to use the useMasterKey with Node.js in parse?
大家好,我的应用程序是在 parse.com 中制作的,但我想使用主密钥,因为我的用户具有管理员角色。
首先我尝试使用 JS SDK,但他们告诉我,我必须使用 Cloud Code。
好吧,我尝试使用 Express 和 Cloud Code,但是当我尝试使用 Parse.Cloud.useMasterkey() 时,控制台显示:
部署失败 error:Uncaught Parse.initialize() 传递了一个主密钥,它只允许在 Node.js.
中使用
所以我的问题是如何使用 Node.js 进行解析?或者在没有 Node 的情况下无法使用 MasterKey??
干杯:)
好吧,这是我的代码,管理员用户想添加新员工,但只有他能做到,所以在数据浏览器中,用户是主键
exports.create = function(req, res){
Parse.Cloud.useMasterKey();
var nombre = req.body.nombre;
var apellido = req.body.apellido;
var email = req.body.email;
var telefono =req.body.telefono;
var celular = req.body.celular;
var username = req.body.username;
var password = req.body.pwd;
//set data in empleado and users
empleado.set("nombre", nombre);
empleado.set("apellido", apellido);
empleado.set("email", email);
empleado.set("telefono", parseInt(telefono));
empleado.set("celular", parseInt(celular));
user.set("username", username);
user.set("password", password);
user.set("email", email);
/* //crear a pointer in Users tables with information of employee
user.set("informacionAdicional", empleado);
user.save();*/
empleado.save(null,{
success: function(empleado){
console.log('Se han guardado los datos del empleado');},
error: function (error){
alert("Error"+ error.code + "" + error.message);}
});
};
你不应该使用来自网络的主密钥,那是不安全的。您需要做的是为您的数据分配正确的权限 table.
首先,阅读数据安全:https://parse.com/docs/data#security
您应该做的是向您尝试创建的 class 添加正确的写入权限。在这种情况下,这可能是员工 class。确保只有管理员用户可以写入此 table。也许你可以添加一个 Administrators 角色,并为这个角色添加写权限。
使用 javascript SDK 用户首先需要进行身份验证。如果经过身份验证的用户是管理员角色的一部分,则用户将能够添加用户。
您不需要使用主密钥,也不应该在客户端这样做。那将是不安全的。如果您在客户端公开主密钥,任何人都可以读取密钥并获得对数据库的完全访问权限。
这里有一些关于完整实施的说明。
首先在 html 中确保你有这个:
<script src="//www.parsecdn.com/js/parse-1.3.5.min.js"></script>
然后你需要初始化parse并定义一个函数来创建一个像这样的用户:
Parse.initialize("your application id goes here", "your javascript key goes here");
var createEmployee = function(employeeData){
var Employee = Parse.Object.extend("Employee");
var employee = new Employee();
employee.set("name", employeeData.name);
//Set more properties of the user/employee
employee.save(null, {
success: function(gameScore) {
// Execute any logic that should take place after the object is saved.
alert('New employee created with objectId: ' + employee.id);
},
error: function(gameScore, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and message.
alert('Failed to create new object, with error code: ' + error.message);
}
});
};
然后当你需要创建一个员工时调用如下函数:
createEmployee({ name: "Some name" });
大家好,我的应用程序是在 parse.com 中制作的,但我想使用主密钥,因为我的用户具有管理员角色。
首先我尝试使用 JS SDK,但他们告诉我,我必须使用 Cloud Code。
好吧,我尝试使用 Express 和 Cloud Code,但是当我尝试使用 Parse.Cloud.useMasterkey() 时,控制台显示:
部署失败 error:Uncaught Parse.initialize() 传递了一个主密钥,它只允许在 Node.js.
中使用所以我的问题是如何使用 Node.js 进行解析?或者在没有 Node 的情况下无法使用 MasterKey??
干杯:)
好吧,这是我的代码,管理员用户想添加新员工,但只有他能做到,所以在数据浏览器中,用户是主键
exports.create = function(req, res){
Parse.Cloud.useMasterKey();
var nombre = req.body.nombre;
var apellido = req.body.apellido;
var email = req.body.email;
var telefono =req.body.telefono;
var celular = req.body.celular;
var username = req.body.username;
var password = req.body.pwd;
//set data in empleado and users
empleado.set("nombre", nombre);
empleado.set("apellido", apellido);
empleado.set("email", email);
empleado.set("telefono", parseInt(telefono));
empleado.set("celular", parseInt(celular));
user.set("username", username);
user.set("password", password);
user.set("email", email);
/* //crear a pointer in Users tables with information of employee
user.set("informacionAdicional", empleado);
user.save();*/
empleado.save(null,{
success: function(empleado){
console.log('Se han guardado los datos del empleado');},
error: function (error){
alert("Error"+ error.code + "" + error.message);}
});
};
你不应该使用来自网络的主密钥,那是不安全的。您需要做的是为您的数据分配正确的权限 table.
首先,阅读数据安全:https://parse.com/docs/data#security
您应该做的是向您尝试创建的 class 添加正确的写入权限。在这种情况下,这可能是员工 class。确保只有管理员用户可以写入此 table。也许你可以添加一个 Administrators 角色,并为这个角色添加写权限。
使用 javascript SDK 用户首先需要进行身份验证。如果经过身份验证的用户是管理员角色的一部分,则用户将能够添加用户。
您不需要使用主密钥,也不应该在客户端这样做。那将是不安全的。如果您在客户端公开主密钥,任何人都可以读取密钥并获得对数据库的完全访问权限。
这里有一些关于完整实施的说明。
首先在 html 中确保你有这个:
<script src="//www.parsecdn.com/js/parse-1.3.5.min.js"></script>
然后你需要初始化parse并定义一个函数来创建一个像这样的用户:
Parse.initialize("your application id goes here", "your javascript key goes here");
var createEmployee = function(employeeData){
var Employee = Parse.Object.extend("Employee");
var employee = new Employee();
employee.set("name", employeeData.name);
//Set more properties of the user/employee
employee.save(null, {
success: function(gameScore) {
// Execute any logic that should take place after the object is saved.
alert('New employee created with objectId: ' + employee.id);
},
error: function(gameScore, error) {
// Execute any logic that should take place if the save fails.
// error is a Parse.Error with an error code and message.
alert('Failed to create new object, with error code: ' + error.message);
}
});
};
然后当你需要创建一个员工时调用如下函数:
createEmployee({ name: "Some name" });