如何在parsing中使用useMasterKey和Node.js?

嗨,大家好,我有我的应用程序在parse.com作出但我想使用主密钥,因为我有用户有pipe理员的angular色。

首先我尝试使用JS SDk,但他们告诉我,我必须使用Cloud Code。

那么我尝试使用Express和Cloud Code,但是当我尝试使用Parse.Cloud.useMasterkey()时,控制台会说:

部署失败,出现错误:Uncaught Parse.initialize()传递了一个主键,它只能在Node.js中被允许。

大豆我的问题是我如何使用Node.jsparsing? 或者有没有使用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);} }); }; 

你不应该使用万维网的万能钥匙,这将是不安全的。 你需要做的是给你的数据表分配正确的权限。

首先阅读数据安全: https : //parse.com/docs/data#security

你应该做的是添加正确的写权利,你正试图创build的类。 在这种情况下,这可能是Employee类。 确保只有pipe理员用户可以写入此表。 也许您可以添加一个pipe理员angular色并为此angular色添加写入权限。

使用JavaScript SDK的用户首先需要进行身份validation。 如果经过身份validation的用户是Administratorsangular色的一部分,用户将能够添加用户。

您不需要使用主密钥,也不应该在客户端执行此操作。 这将是不安全的。 如果您在客户端公开主密钥,任何人都可以读密钥并获得对数据库的完全访问权限。

这里有一些完整实现的说明。

首先在html中确保你有这个:

 <script src="//www.parsecdn.com/js/parse-1.3.5.min.js"></script> 

那么你需要初始化parsing并定义一个函数来创build一个用户,如:

 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); } }); }; 

那么当你需要创build一个员工调用如下函数:

 createEmployee({ name: "Some name" });