【问题标题】:How to stop users from using an app over two devices?如何阻止用户在两台设备上使用应用程序?
【发布时间】:2016-03-06 07:51:47
【问题描述】:

我有一个 iOS 应用程序,我在其中使用 Facebook 登录,并在完成电话验证后让用户继续使用该应用程序。我只在用户注册时要求电话验证一次。

我想问是否有任何方法可以阻止用户在两台设备上使用该应用程序?因为应用程序记录了用户的足迹(位置)和当前位置,如果用户在两台设备上使用该应用程序,两个设备都会进行位置更新,并且无法分辨哪个位置属于用户?

我可以使用 UUID 或其他标识符吗?

【问题讨论】:

  • 您是否使用身份验证令牌或对用户的任何授权?
  • 如果您每次登录都使用身份验证令牌,您可以在每次登录时生成新的身份验证令牌,并且可以使另一台设备的旧令牌无效
  • 您不能在安装(或首次运行)应用程序时生成一个随机 ID 并将该 ID 与任何数据一起发送以使设备分开吗?

标签: ios login-control


【解决方案1】:

您不能使用 UUID。但是您可以生成供应商 ID。但是您需要检查用户是否已经在某种服务器上的设备上使用过,并让应用程序询问是否允许运行。

但请记住,Apple 不喜欢这样的东西。

【讨论】:

    【解决方案2】:

    好吧,我不得不做一次类似的事情。该应用程序曾经在应用程序中购买了可以为单个用户运行的设备数量。我所做的是:

    1. 我曾经在登录我的应用时获取设备的 UUID 并将其发送到服务器。

    2. 在我的服务器端数据库中,可以针对用户存储 UUID。每当用户尝试登录时,我都会使用登录请求发送 UUID。

    3. 如果 UUID 存在,则我返回成功响应,否则我用于检查该用户允许的设备数量。如果添加此设备超出限制,那么我曾经发送失败响应。否则用于针对该用户插入 UUID 并返回成功响应。

    4. 假设如果用户从设备上删除应用程序并希望从另一台设备登录。然后显示一个弹出窗口,例如“您要更改设备吗?”如果他/她说是,那么我曾经更新 UUID 并允许他/她使用此设备中的应用程序。每次应用启动(新启动或从后台启动)时,我都会根据服务器的 UUID 检查 UUID。

    您可以设计自己的系统,但使用设备 UUID 会带来一些额外的好处。就像您不需要将 UUID 存储在任何地方一样,您可以依赖它的唯一性。

    【讨论】:

    • 如果用户登录,我将 UUID 发送到服务器,然后该用户出于某种原因删除了应用程序,下次安装时,应用程序总是会得到“假”怎么办?
    • 我不确定 Apple 是否允许使用 UDID,但是我可以使用 Facebook 访问令牌来实现我想要做的事情。每次登录都会使以前的访问令牌无效,我可以将他从以前的设备中注销。不过,我接受你对逻辑的回答。
    • @ZeeshanAnjum > Apple 在使用 UUID 方面没有任何问题,尽管我在过去几年没有在任何应用程序中使用它。是的,您也可以使用其他可能的选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多