解析& Swift - 防止同时登录 - 当用户从电话

时间:2015-11-19 21:30:58

标签: swift parse-platform installation token device

为了解决我遇到的很多问题,我决定阻止单个用户同时登录。当用户登录到Parse时,我检查是否存在Bool(isUserLoggedIn)设置为true的现有安装。如果有,则在继续之前,系统会提示用户在所有其他设备上注销我的应用程序。一旦他们这样做,他们就可以登录。

这一切都正常。

但是,我意识到了一个潜在的问题。如果用户登录我的应用程序,然后从手机中删除我的应用程序(在他们注销之前),我就没有机会将Installation对象中的Bool值设置为false。因此,用户删除应用程序,安装对象(包含其用户objectId)仍然将isUserLoggedIn Bool设置为true。

当用户在手机上重新安装我的应用程序并使用之前创建的帐户登录时,我的应用程序不会让他们登录,因为提示认为以前的安装仍然登录。

那么,关于如何解决这个问题的任何想法?如果我能获得持久的设备ID,我可以解决它,但显然你不能再用iOS设备那样做了。卸载我的应用后,设备ID将随着我的应用重新安装而改变。

我也可以解决它,如果Parse可以在用户从手机上卸载应用程序时删除安装对象,但这似乎也不可能。

我想到的最后一件事是,如果有一种方法可以使用用户objectID查询安装对象,并且对于所有返回的对象,请查询每个设备的deviceToken。任何不再有效的deviceToken,必须是之前应用安装中的Installation对象,然后我可以从Parse中删除,解决我的问题。

我真的很想听听你的想法。

谢谢。

1 个答案:

答案 0 :(得分:0)

我最终使用了Wain对这个问题的建议: Handling Login on Multiple Devices using Parse iOS

我改变了跟踪多个安装的方式(使用User类而不是Installation类)