当设备脱机时,DeviceCheck API 能否生成令牌?
if DCDevice.curDevice.isSupported {
DCDevice.current.generateToken(completionHandler: { (data, error) in
if let tokenData = data {
print("Received token (tokenData)")
}
else {
print("Hit error: (error!.localizedDescription)")
}
})
}
设备令牌也可以在离线模式下接收。
更新操作系统后,设备令牌可能会更改,并且 设备数据和设置被抹掉时始终更改
密钥可以通过使用generatekey
API 离线生成。但是,在调用attestkey
API 以获取attestationObject
时,它将调用Apple的服务器,因此如果在离线模式下尝试,证明将失败。
确保此解决方案质量设计的一些旁注 -
- 在进行证明密钥 API 调用时,可能需要相当长的时间(有时甚至长达 4 秒(。
- 苹果希望这些电话只有在真正的时候才能打。 需要并以明智的方式。在文档中,它是 提到的HTTP错误429将被抛出太多请求。那里 没有关于每分钟/小时最大请求数的信息, 不幸。