Javascript stackmob中当前登录的用户
我正在尝试获取已登录用户的联系人列表,但无法找到当前用户。我从Parse.com知道你使用Parse.User.current()Stackmob有这样的东西吗 下面的代码演示了我在寻找什么Javascript stackmob中当前登录的用户,javascript,jquery,html,parse-platform,stackmob,Javascript,Jquery,Html,Parse Platform,Stackmob,我正在尝试获取已登录用户的联系人列表,但无法找到当前用户。我从Parse.com知道你使用Parse.User.current()Stackmob有这样的东西吗 下面的代码演示了我在寻找什么 $(window).load(function () { var user = StackMob.User; var Contacts = StackMob.Model.extend({ schemaName: 'contacts' }); var myCon
$(window).load(function () {
var user = StackMob.User;
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', user);
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});
我使用下面的代码得到了我想要的东西,但是拥有('sm_owner','user/thomas')是没用的
$(window).load(function () {
var Contacts = StackMob.Model.extend({ schemaName: 'contacts' });
var myContacts = new Contacts();
var q = new StackMob.Collection.Query();
q.equals('sm_owner', 'user/thomas');
q.orderAsc('FirstName'); //sort by title in ascending order
q.setRange(0, 9); //get the first 10. second 10 would be setRange(10,19)
myContacts.query(q, {
success: function (model) {
console.debug(model.toJSON()); //JSON array of matching Todo objects
},
error: function (model, response) {
console.debug(response);
}
});
});
听起来你想用StackMob的 例如,您可以设置权限,以便用户只能读取自己创建的对象 当用户创建对象时,
sm_owner
字段将自动设置为当前登录的用户。要利用这一点,您可以将联系人
模式设置为仅允许用户读取自己的联系人。这样,按当前用户进行过滤是在服务器端完成的,您不必在客户端专门查询它
如何设置:
转到架构配置并编辑选择您的架构。在架构权限下,选择登录权限->允许sm_所有者
进行读取
,更新
,以及删除
现在,当您查询联系人
模式时,只会返回(sm_owner
==当前用户)的联系人
对象。然后您可以简单地删除这一行:
q.equals('sm_owner', 'user/thomas');
值得注意的是,如果您试图获取您无权访问的内容,您将收到401未经授权的响应。例如,如果只允许“任何登录用户”读取,而您没有登录,您将得到401响应,错误回调将被执行。同时,正如Justin所说的,上面的/Justin示例,即使数据库中可能有许多联系人,也只会返回thomas的,因为读取权限设置为“所有者”。因此,服务器将只返回允许的对象实例。这就是为什么可以删除
q.equals('sm_owner','user/thomas')
行。由于您设置的权限,它会在服务器端自动发生。但是如果确实需要使用当前用户名生成查询,您可以使用该方法。