Javascript 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

我正在尝试获取已登录用户的联系人列表,但无法找到当前用户。我从Parse.com知道你使用Parse.User.current()Stackmob有这样的东西吗

下面的代码演示了我在寻找什么

$(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')
行。由于您设置的权限,它会在服务器端自动发生。但是如果确实需要使用当前用户名生成查询,您可以使用该方法。