我有一个使用Parse Javascript SDK和Parse-Server的node.js express app。
我已根据guide设置了所有内容,但JS SDK无效。
我得到了{error:unauthorized}
。我可以使用REST API访问我的服务器,但不能使用JS SDK从应用程序中访问。
我读到你必须为Parse-Server的所有操作指定useMasterKey = true
,所以:
var User = Parse.Object.extend('_User');
var query = new Parse.Query(User);
query.useMasterKey = true;
query.find().then( function(results) {
console.log(results);
},
function(error) {
console.log(JSON.stringify(error));
});
应该返回与此curl相同的数据(对吗?):
curl -X GET \
-H "X-Parse-Application-Id: myAppId" \
-H "X-Parse-Master-Key: myMasterKey" \
http://localhost:1337/parse/classes/_User
唉,事实并非如此。
当我尝试运行默认的云代码功能时出现相同的错误消息:
Parse.Cloud.run('hello').then( function(response) {
console.log(response);
},
function(error) {
console.log(JSON.stringify(error));
});
任何可能有帮助的想法?感谢。
答案 0 :(得分:3)
知道了!
在我的Express应用程序中,对我来说这些行是什么
var Parse = require('parse/node').Parse;
Parse.initialize('app_id', 'js_key','master_key');
Parse.serverURL = 'serverURL';
Parse.Cloud.useMasterKey();
在这些行之后,任何需要使用Cloud Code或Parse使用的呼叫都被授权
答案 1 :(得分:1)
我的问题是缺乏经验:
我正在使用body-parser并将应用设置为使用该模块的raw
,json
,text
和urlencoded
中间件功能。
我只需要urlencoded
选项。我删除了其他人,JS SDK开始正常工作。不知何故,其他功能正在干扰SDK。