嗨enveryone我在parse.com上制作了我的应用程序但是我想使用主密钥,因为我的用户具有administrador的角色。
首先我尝试使用JS SDk,但他们告诉我,我必须使用Cloud Code。
我尝试使用Express和Cloud Code,但是当我尝试使用Parse.Cloud.useMasterkey()时,控制台会说:
部署失败并出现错误:未捕获的Parse.initialize()传递了一个主密钥,只允许在Node.js中使用。
大豆我的问题是我如何使用解析的Node.js?或者没有节点使用MasterKey?
干杯:)
这是我的代码,Administrador用户想要添加新员工,但只有他能做到,所以在数据浏览器中用户是主密钥
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);}
});
};
答案 0 :(得分:1)
您不应该使用网络中的主密钥,这将是不安全的。您需要做的是为您的数据表分配正确的权限。
首先,阅读数据安全性:https://parse.com/docs/data#security
您应该做的是为您要创建的类添加正确的写权限。在这种情况下,这可能是Employee类。确保只有admin用户可以写入此表。也许您可以添加管理员角色并为此角色添加写入权限。
使用javascript SDK,用户首先需要进行身份验证。如果经过身份验证的用户是管理员角色的一部分,则用户将能够添加用户。
您不需要使用主密钥,您不应该在客户端执行此操作。那将是不安全的。如果您在客户端公开主密钥,则任何人都可以读取密钥并获得对数据库的完全访问权限。
以下是有关完整实施的一些说明。
首先在html中确保你有这个:
<script src="//www.parsecdn.com/js/parse-1.3.5.min.js"></script>
然后你需要初始化解析并定义一个函数来创建一个像这样的用户:
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" });