【发布时间】:2012-06-01 08:19:51
【问题描述】:
我正在开发的网络应用程序需要将设备识别为已激活或未激活,以防止它们使用未付费的服务。现在,我们将它存储在一个 webSQL 表中,如果您清除浏览器设置,您将完全被淹没,我们必须为您修复它。
是否有更持久的方法来唯一标识设备以确定其设备激活状态?
我一直在研究 evercookie,但只需要清除并强制关闭浏览器即可将其杀死 Android(没有强制关闭,即使浏览器清除,它也能正常工作)。更好,但并不理想。我没有 iOS 设备来测试它,但我们真正关心的是这两个。
还有我不知道的更好的选择吗? evercookie 比我目前拥有的更聪明还是没有必要?
只是关于我们正在使用的商业模式的一些背景知识。客户购买设备许可证,一个设备许可证激活一个设备(因为现在可以使用一台设备,而不是一个帐户)。因此,多个设备可以在一个帐户上,但需要激活。所以独特的帐户已经出来了。我们需要一种通过网络应用强制激活设备的方法。
【问题讨论】:
-
我认为去年的 google i/o android 会谈说不要使用全局设备 ID,以防设备被转移。我所做的是一旦设备通过身份验证,我只需创建一个存储在数据库中的私钥,并在第一次请求时通过 ssl 发送它。然后,第一个请求会得到一个带有 cookie 的响应,当用户退出时可以终止该响应。
-
这些许可可以转让,但由我们自行决定。而且我并没有真正看到您的特定方法的持久性。
-
@MobyD,Javascript 无法访问像 IMEI 这样的唯一设备标识符,因此您在某种程度上无法使用 cookie。我认为这将是一个很好的解决方案:编写一个非常简单的本机应用程序仅用于身份验证,它会向您发送 IMEI 并将它们发送回一个简短的身份验证代码以输入您的网络应用程序。如果他们出于某种原因清除了 cookie,只需要求他们再次使用其他应用程序进行身份验证,向他们发出新的身份验证代码等。
-
@nwellcome 我开始看到这一点。这不是我所希望的,但你的解决方案确实是目前最好的。鉴于我们在 Android/iOS 开发方面的经验为零,目前它只是有点超出我们的联盟。不过谢谢。
-
@MobyD,看看PhoneGap,它可以让你创建一个原生应用程序,主要使用javascript和html,就像一个web应用程序一样,它实际上启动和运行起来相当快。我不知道如何使用 PhoneGap 编写 Chuck Norris 的持久应用程序或 Pulsar 的瘦包装器,但我的身份验证应用程序会相当简单。
标签: javascript android ios web-applications local-storage