20

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

最初发布在一篇文中, 但现在已合并到主要的android 文档中,验证让您知道 3 件事: 然后,您知道:

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

关键是:

GoogleAuthUtil 会观察到 Android 应用和 Web 客户端 ID 在同一个项目中,并且在未经用户批准的情况下,向应用返回一个 ID 令牌,由 Google 签名。

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

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

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

4

2 回答 2

2

幸运的是,我在stackexchange上遇到了这个帖子,用户Iwaz在那里发表了评论。

Iwaz 指的是 Apple 的DeviceCheck 框架,该框架可用于验证对 API 的调用是否来自 iPhone 应用程序的实际安装。

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

  1. DCDevice通过调用DCDevice'scurrentDevice方法获取电流。
  2. 从中DCDevice调用其generateTokenWithCompletionHandler方法以获取令牌。
  3. 在向您的 API 发出请求时,将该令牌与您的其他数据一起发送。
  4. 在您的 API 服务器代码中,通过提供令牌来调用 Apple 的 API 以对其进行验证,如此所述。
于 2019-02-08T16:54:22.130 回答
0

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

于 2018-01-25T00:55:03.150 回答