有没有办法强制parse.com单设备login?

我正在开发一个应用程序,我需要非常节俭的API请求,要求越less越好。 问题是每个用户都有设置和消息,我想避免每次唤醒时都可能发生的变化。 我不能依靠每个用户都能启用推送通知。

我的做法是强制执行一个用户只能使用一个设备login的折衷办法。 如果他们尝试使用其他设备(通过Facebook)login,他们会收到错误消息,他们可以select取消login或继续远程登出其他设备。

这可能吗?

我find了解决这个问题的办法。

  1. 查询login后的会话数
  2. 如果数字大于1,请问用户做什么
    • 注销其他设备(并继续) – >调用“deleteAllOtherSessions”
    • 取消login(并返回login屏幕) – >调用“deleteLastSession”

云代码:

Parse.Cloud.define("getSessionCount", function(request, response) { if (request.user == null) { reportError("findSessions", "userCheck", 0); response.error("invalid user"); return } var query = new Parse.Query(Parse.Session); query.find({ success: function(results) { response.success(results.length); }, error: function(error) { response.error(error); } }); }); Parse.Cloud.define("deleteAllOtherSessions", function(request, response) { if (request.user == null) { reportError("deleteAllOtherSessions", "userCheck", 0); response.error("invalid user"); return } var sessionToken = request.params.sessionToken; var query = new Parse.Query(Parse.Session); // this query will find only sessions owned by the user since // we are not using the master key query.find().then(function(results) { var promises = []; _.each(results, function (result) { if(result.get("sessionToken") != sessionToken) { promises.push(result.destroy()); } }); return Parse.Promise.when(promises); }).then(function() { response.success(true); }, function(error) { response.error(error) }); }); Parse.Cloud.define("deleteLastSession", function(request, response) { if (request.user == null) { reportError("deleteLastSession", "userCheck", 0); response.error("invalid user"); return } var sessionToken = request.params.sessionToken; var query = new Parse.Query(Parse.Session); query.descending("createdAt"); // this query will find only sessions owned by the user since // we are not using the master key query.find().then(function(results) { var promises = []; console.log(results); promises.push(results[0].destroy()); return Parse.Promise.when(promises); }).then(function() { response.success(true); }, function(error) { response.error(error) }); }); 

希望能帮助别人。