【问题标题】:Verify backend calls from iOS app验证来自 iOS 应用的后端调用
【发布时间】:2015-10-24 10:53:28
【问题描述】:

我正在尝试找到与此 Android 验证等效但适用于 iOS 的方法。

最初发布在blog post,但现在并入主android documentation,验证让您知道3件事: 那么,你就知道了:

  1. 令牌由 Google 颁发。
  2. 令牌已发送到由有效负载电子邮件字段中标识的人员操作的设备。
  3. 令牌是由有效载荷的 azp 字段中的客户端 ID 标识的 Android 应用获取的。

关键是:

GoogleAuthUtil 将观察到 Android 应用和网络客户端 ID 在同一个项目中,并且未经用户批准,返回一个 ID 令牌 到应用程序,由 Google 签名。

因此,我能够在不干扰用户的情况下验证后端调用。

Apple 的 iOS 是否有类似的东西,当 Apple 观察到 iOS 应用程序和 Web 客户端 ID 时,我可以获得 Apple 签名的 ID 令牌?

我发现SO question 试图找到类似的东西,但我希望有一个更简单的解决方案。这个问题是一年多以前的事了,所以我希望有更好的答案,可能是新的 CloudKit 网络服务。

【问题讨论】:

  • 我找到的最接近的东西是:riskcompletefailure.com/2013/11/…,尽管这与您提到的 Android 等价物不太一样,因为这仍然需要用户拥有 Google gmail 帐户,我的一些 iOS 用户可能会反对。几个月来我一直在寻找和你一样的东西,但没有成功:看起来,在没有用户批准的情况下验证服务器通信的唯一方法就是从头开始发明一种本土机制!
  • 嘿,你仍然可以使用 oauth2 来获取所有内容 raywenderlich.com/99431/oauth-2-with-swift-tutorial 让我知道这对你来说是什么样的。
  • @但是你有没有找到任何解决方案。现在我面临类似的问题,请指导我您是如何实现的
  • @bittoo,抱歉我没有
  • 你说的是获取推送通知的 ID 吗?

标签: ios cloudkit google-authentication cloudkit-web-services


【解决方案1】:

幸运的是,我遇到了this thread on stackexchange 用户Iwaz 留下了评论。

Iwaz 指向 Apple 的 DeviceCheck Framework,它可用于验证对您的 API 的调用是否来自您的 iPhone 应用程序的实际安装。

根据文档,它的工作原理如下:

  1. 通过调用DCDevicecurrentDevice方法获取当前的DCDevice
  2. DCDevice 调用其generateTokenWithCompletionHandler 方法以获取令牌。
  3. 向您的 API 发出请求时,将该令牌与您的其他数据一起发送。
  4. 在您的 API 服务器代码中,通过提供令牌来调用 Apple 的 API,以按照 here 所述进行验证。

【讨论】:

    【解决方案2】:

    据我所知,对用户进行身份验证时,您可以使用类似于 Oauth2 的第 3 方软件,该软件也使用令牌来验证客户端 ID 并从中授予用户访问权限。

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多