如何在Parse.com?

时间:2015-10-07 23:12:57

标签: session parse-platform login cloud-code

在处理游戏时,我们需要强制执行每个用户在一次安装中最多只有一个活动会话。

理想情况下,如果用户尝试在他们有另一个活动会话时登录,我们应该停止登录过程并提示他们喜欢的内容:继续登录并可能丢失旧会话中未保存的数据,或者中止登录并保持旧会议活跃。

但是,为了查看用户的会话,我们需要先登录。这很重要,出于安全考虑,并且完全没有问题,因为先验我们应该能够做到这样的事情:

  1. 将用户登录。
  2. 在“afterLogin”触发器中,检查是否有来自不同安装的旧活动会话。
  3. 如果有,请使用特定的错误代码/消息中止登录(将其记录下来)。
  4. 收到此错误代码后,该应用可以提示用户,询问他们希望保留哪个会话。
  5. 用户可以中止登录,在这种情况下我们什么都不做,或者他们可能决定使用这个新会话,在这种情况下我们可以发送一个登录请求,传递一个额外的参数来表明我们正在强制新会话
  6. 我们再次登录用户,因为我们收到了这个额外参数,所以“beforeLogin”触发器会知道撤销和删除任何旧会话。
  7. 问题在于,显然没有“beforeLogin”和“afterLogin”触发器。也无法将额外参数传递给登录请求。

    我们可以通过调用处理应用程序中登录成功回调中的会话的云函数来解决这个问题...但是很容易想到用户最终使用两个不同的会话完全登录的情况安装,我们最终不得不处理它们。

    我们还想过通过云功能登录它们,但这似乎带来了更多的问题而不是解决它们。

    有没有更好的方法呢?

0 个答案:

没有答案