Iphone 仅通过唯一标识符授予已验证的IOS设备对服务器的访问权限

Iphone 仅通过唯一标识符授予已验证的IOS设备对服务器的访问权限,iphone,ipad,validation,ios6,udid,Iphone,Ipad,Validation,Ios6,Udid,我公司有10台IOS设备,主要是运行IOS 6的iPad。我有一个服务器,在那里我为我的设备创建了适当的web服务来与之通信。我希望通过只允许经过验证的设备访问Web服务来扩展当前设置 我已经研究过将UDID作为额外属性传递给web服务器,然后该服务器将针对包含加密UDID的数据库运行,如果找到匹配项,则设备将被验证,并允许web服务进程继续 然而,据我所知,UDID现在已贬值。我能为每个设备实现唯一的UDID的最简单方法是什么,该UDID也适用于未来的内部应用程序更新?使用UIDevice i

我公司有10台IOS设备,主要是运行IOS 6的iPad。我有一个服务器,在那里我为我的设备创建了适当的web服务来与之通信。我希望通过只允许经过验证的设备访问Web服务来扩展当前设置

我已经研究过将UDID作为额外属性传递给web服务器,然后该服务器将针对包含加密UDID的数据库运行,如果找到匹配项,则设备将被验证,并允许web服务进程继续


然而,据我所知,UDID现在已贬值。我能为每个设备实现唯一的UDID的最简单方法是什么,该UDID也适用于未来的内部应用程序更新?

使用UIDevice identifierForVendor在iOS6下识别设备

[[UIDevice currentDevice] identifierForVendor]
来自苹果文档: 对于在同一设备上运行的来自同一供应商的应用,此属性的值相同。对于来自不同供应商的同一设备上的应用,以及针对供应商的不同设备上的应用,将返回不同的值


我使用的另一种方法是在服务器上生成UUID,通过URL方案将其发送给用户,打开应用程序,应用程序将其保存在密钥链中。钥匙链在应用程序删除/重新安装时保存UUID。

使用设备的MAC地址。这并不违反苹果的政策,也不会改变。

为什么不创建一个标准的登录系统,让用户使用用户名和密码登录设备,然后服务器返回一个证书,用于验证未来的交互?当您只需要登录时,为什么要将用户限制在特定设备上。最终结果——限制哪些用户可以使用该系统——仍然可以实现,但以更灵活和可扩展的方式实现。

除非有人改变它。除非你越狱,否则不要认为这是可能的:如果用户从该供应商处删除所有应用程序,iOS将删除该值。如果用户在此之后重新安装一个或多个应用程序,将生成一个新值。因此,标识符对于广告的作用是有限的。这意味着标识符对于供应商来说是有限的,但这并不能更好地解决问题。