问题标签 [devicecheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
513 浏览

ios - 如何使用 DeviceCheck API swift 获取唯一 ID?

希望所有人都做得很好。我现在正在进行设备检查API,如何在访问苹果服务器时获得唯一的 ID?当将设备令牌从移动设备发送到我们的服务器时,我们的服务器将查询请求发送到 APN 服务器,如下所示:

然后收到来自APN服务器的响应,因为此设备令牌没有位值

之后,我已将更新消息发送到苹果服务器,其位值如下

然后收到成功消息为

但是在这里我怎样才能获得唯一的设备 ID?请有人帮我解决这个问题两天。我参考了很多例子,但没有任何帮助。提前致谢

0 投票
2 回答
2159 浏览

ios - DeviceCheck API - iOS 设备的唯一标识符?

使用设备检查时,它每次都会生成新令牌,如下所示,

生成的令牌:

eyJiaXQwIjpmYWxzZSwidG9rZW4iOiJBZ0FBQUVMcFdkRkZXdkF0aE5CUU80Zyt3V1FFVU5rMCttZTg5dkxmdjVaaW5ncHlPT2tnWFhYeWpQellUeldtV1N1K0JZcWNENDdieWlyTForKzNkSmNjcEY5OWhXcHBUN0c1eEF1VSt5NTZXcFNZc0FRTVVyaTJZSGplTVo3NmJnM3hqa1ozTnZpdFM2Q3NoWFJPNUVl

使用位值和令牌,我们可以发现设备是否存在于苹果中,即使我们卸载应用程序也是如此。但它对于唯一识别设备有何用处。

成功响应:

{"状态":200,"bit0":false,"bit1":false,"lastUpdated":"2018-10"}

服务器请求:

{

“device_token”:“wlkCDA2Hy/m5jQ1cs ...”“transaction_id”:“4-w3d4-567-2376674f8uj8”,“时间戳”:1487716472000

}

这是我用于我的代码的链接:

https://github.com/marinosoftware/DeviceCheckSample

0 投票
0 回答
52 浏览

ios - 如何使用设备检查标记黑客

鉴于只有在设备发送令牌的情况下才能标记滥用者和潜在黑客的设备,我该如何标记?

我们可以等待用户发送包含令牌的请求,然后自然而然地让用户不会怀疑,然后标记设备。

但有一种可能的情况是,我们发现了一个坏用户,但用户阻止了 iOS 应用程序发送任何令牌。

我们如何标记此用户的设备?

0 投票
1 回答
315 浏览

ios - 在 swift 中为 DeviceCheck API 生成授权不记名令牌时面临问题

我正在努力DeviceCheck。生成JSON网络令牌&我正在使用SwiftJWT库。但我不知道我是如何生成JWTDeviceCheck

代码:

打印时JWT我得到以下响应:

JWT(标头:SwiftJWT.Header(typ:可选(“JWT”),alg:可选(“ES256”),jku:无,jwk:无,孩子:可选(“KEY_ID”),x5u:无,x5c:无, x5t: nil, x5tS256: nil, cty: nil, crit: nil), 声明:SwiftiOSDeviceCheck.ViewController.(未知上下文 $104614dbc).(未知上下文 $104614e28).MyClaims(iss: "ISS_ID", iat: 2019-06-03 11:55:53 +0000, exp: 2019-06-03 11:55:53 +0000))

并且从 API 我在邮递员中得到以下响应:

无法验证授权令牌

我该如何解决这个问题?

0 投票
1 回答
893 浏览

ios - 为 Apple 的 DeviceCheck API 生成 JWT

我正在尝试使用 Apple 的 DeviceCheck API。我似乎无法制作一个不会失败的请求,因为401 Unable to verify authorization token我尝试了一些小的变化。

我把这个暂存文件的输出插入到这里:

按照Apple 文档的建议。

这个整体结构对吗?我正在尝试遵循本教程,这意味着这种结构:

JWT 签名流程概述

但苹果的这句话:

您发送到查询和更新端点的每个请求都必须包含一个包含您的身份验证密钥的授权标头。身份验证密钥必须使用 ES256 算法并采用 Base 64 URL 编码的 JSON Web 令牌格式。如果您的令牌不使用此格式,您会收到 BAD_AUTHENTICATION_TOKEN HTTP 错误。

建议我的请求应该“包含我的身份验证密钥”,而不是使用密钥签名。

0 投票
0 回答
240 浏览

php - 在 php 中使用 ES256 算法在 JWT 中未在 Ios 设备检查 api 中获得响应

我正在使用带有算法 ES256 的 JWT 令牌使用 PHP 检查设备的 IOS 并成功为其创建 JWT(JSON Web 令牌)。

我试图通过邮递员 API 调用 API 进行设备检查:https ://api.development.devicecheck.apple.com/v1/query_two_bits

我已经从上面的代码成功创建了一个 JWT 令牌,

API:https ://api.development.devicecheck.apple.com/v1/query_two_bits

但是,当我在上述 API 的授权承载中传递此令牌时,我遇到了错误。

无法验证授权令牌

创建身份验证文件时是否有任何错误?

0 投票
0 回答
89 浏览

swift - 关于 iOS > 11 中的 Devicecheck 以及如何确保用户是真实用户的问题?

我正在实施一个注册系统,它使用 SMS 来验证用户。当我为每条发送的短信付费时,我想防止有人向我的服务器发送 100000 条请求,这会导致向随机用户发送 100000 条短信。我想例如只接受 10 条短信/小时/用户。但是,问题是我无法真正识别具有 IP 地址的用户(可能有几个用户使用相同的 IP)。

我听说 Devicecheck 是一个 Apple API,它可以在服务器端告诉我客户端发送的临时令牌是否是真实的,来自真实的 iPhone。问题是我无法存储此令牌发送的短信数量,因为它是临时的。我唯一能做的就是在 Apple 服务器上存储 2 位,但是,使用 2 位,我无法存储用户在一小时内发送 SMS 的次数。

如果用户发送短信,我能做的最好的事情是存储一个“真”,然后如果他们再次尝试发送短信,如果我在 1 分钟内看到一个真(因为我们也可以知道上次设置这些位的时间),我可以说不。但这不是我真正想要的:如果用户输错电话号码 3 次甚至 4 次,我不想让他们等待。

您是否知道使用 DeviceCheck 存储此类信息(n sms/h/user)?

另外,我在想 swift 应用程序已经编译,所以用户看不到它的源代码。因此,我可以这样做以确保用户是真实的:

  • 客户端请求服务器的密钥
  • 服务器返回一个随机密钥给客户端
  • 客户端以秘密方式加密此密钥,由于源代码不可读,任何人都无法看到
  • 客户端发送实际请求 + 它生成的令牌 + 服务器发送的密钥
  • 从密钥中,服务器对令牌进行解密,如果令牌与发送的密钥不匹配,则失败

你认为这样的过程可靠吗?

0 投票
1 回答
451 浏览

php - 使用 DeviceCheck API 和服务器端 php 代码无法正常工作的唯一标识 iOS 设备

我收到错误消息:负载丢失或格式不正确

我正在使用真实设备以 swift 语言从 Apple DeviceCheck API 生成设备令牌,并将事务 ID 传递给这个 php api。

使用此代码成功生成 jwt 令牌,但进一步的代码不适用于苹果查询位 api。

这是我在 php 中的服务器端代码:

这段代码哪里有问题?或 php 代码中的任何其他解决方案。

有什么我想念的吗。

0 投票
0 回答
447 浏览

php - 在 php 中为唯一的 iOS 设备生成 jwt 时丢失或格式不正确的设备令牌有效负载

我想生成代码来识别具有服务器端 php 代码的唯一 iOS 设备。无法从 api 获得正确的响应。

我收到 200 个 http 响应,但收到“缺少或格式错误的设备令牌有效负载”

我预计结果“{“bit0”:true,“bit1”:false,“last_update_time”:“2017-06”}”但收到错误“缺少或格式错误的设备令牌有效负载”,响应代码为200。

0 投票
1 回答
679 浏览

ios - 设备检查 API:错误:无法验证授权令牌

我正在使用Xcode10Swift 5SwiftJWT生成JSON Web token以进行身份​​验证Device Check API。下面是方法

得到类似的结果eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiIs...

使用上述标头连接 Apple 服务器。我不断从 Apple 的服务器收到此响应:401 Unable to verify authorization token.

我也在尝试从jwt创建 JSON Web 令牌

但同样的错误。任何帮助,将不胜感激。提前致谢