验证iOS应用程序的后端调用

20
我正在尝试找到iOS的类似功能,以替代此Android验证。最初发布在博客文章中,但现在已并入主要的Android文档中。该验证使您了解以下三点:
然后,您就知道了:
1. 令牌是由Google发行的。 2. 该令牌已发送到由有效载荷电子邮件字段中标识的人操作的设备上。 3. 该令牌是由有效载荷azp字段中标识的Android应用程序获取的。
关键点是:
  

GoogleAuthUtil会观察到Android应用程序和Web客户端ID位于同一项目中,并在不需要用户批准的情况下向应用程序返回由Google签名的ID令牌。

因此,我能够在不中断用户的情况下验证后端调用。是否有类似于苹果的iOS的功能,在应用程序和Web客户端ID之间建立连接时,可以获得由Apple签名的ID令牌?
我找到了一个SO问题,试图找到类似的东西,但我希望有一个更简单的解决方案。那个问题已经过去一年多了,所以我希望可能会有更好的答案,可能是使用新的CloudKit Web服务。

我找到的最接近的东西是这个:http://www.riskcompletefailure.com/2013/11/client-server-authentication-with-id.html,虽然这不完全等同于你提到的Android等效物,因为这仍然需要用户拥有Google Gmail帐户,这可能会引起我的一些iOS用户的反感。我已经寻找与您相同的东西几个月了,但没有成功:看起来验证服务器通信而不需要用户批准的唯一方法是从头开始发明一个自制机制! - DDSports
嘿,你仍然可以使用oauth2获取基本一切。http://www.raywenderlich.com/99431/oauth-2-with-swift-tutorial 看看这对你来说像什么。 - MahdeTo
@yet 你找到解决方案了吗?我现在也遇到了类似的问题,请指导一下你是如何解决的。 - Bittoo
@bittoo,抱歉我没有 - yet another programmer
你是在说获取推送通知的ID吗? - Juan
为什么不使用SSL证书来验证Google发送或接收的请求以及设备ID以验证有效用户? - Abu Ul Hassan
1个回答

3
幸运的是,我在 stackexchange 上找到了这个帖子,其中用户 Iwaz 留下了评论。
Iwaz 指出了苹果的 DeviceCheck Framework,该框架可用于验证 API 调用是否来自您 iPhone 应用的实际安装。
根据文档,其工作方式如下:
  1. 通过调用 DCDevicecurrentDevice 方法获取当前的 DCDevice
  2. 从该 DCDevice 调用其 generateTokenWithCompletionHandler 方法以获取令牌。
  3. 在进行对 API 的请求时,将该令牌与其他数据一起发送。
  4. 在 API 服务器代码中,按照 此处 描述提供令牌来调用 Apple 的 API 进行验证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接