我正在尝试让DeviceCheck工作,我不断从Apple的服务器获得这个响应: 401 Unable to verify authorization token.
该device_token过的JSON有效载荷base64编码字符串被发送到我的蟒蛇服务器.我有什么想法可能做错了吗?
这是我的代码示例:
def device_check_query(device_token):
data = {
'device_token': device_token,
'transaction_id': str(uuid4()),
'timestamp': int(time.time() * 1000),
}
jw_token = get_jw_token()
headers = {'Authorization': 'Bearer ' + jw_token}
response = requests.post(QUERY_URL, json=data, headers=headers)
return response.content
def get_jw_token():
with open(KEY_FILE, 'r') as cert_file:
certificate = cert_file.read()
jw_token = jwt.encode(
{'iss': TEAM_ID}, certificate,
algorithm='ES256',
headers={'kid': KEY_ID})
return jw_token
Run Code Online (Sandbox Code Playgroud) 使用设备检查时,它每次都会生成新的令牌,如下所示,
生成的令牌:
eyJiaXQwIjpmYWxzZSwidG9rZW4iOiJBZ0FBQUVMcFdkRkZXdkF0aE5CUU80Zyt3V1FFVU5rMCttZTg5dkxmdjVaaW5ncHlPT2tnWFhYeWpQellUeldtV1N1K0JZcWNENDdieWlyTForKzNkSmNjcEY5OWhXcHBUN0c1eEF1VSt5NTZXcFNZc0FRTVVyaTJZSGplTVo3NmJnM3hqa1ozTnZpdFM2Q3NoWFJPNUVl
使用比特值和令牌,我们可以找到设备是否存在于苹果中,即使我们卸载了应用程序。但是它如何用于唯一标识设备。
成功回复:
{"status":200,"bit0":false,"bit1":false,"lastUpdated":"2018-10"}
服务器请求:
{
“device_token”:“wlkCDA2Hy/m5jQ1cs...”“transaction_id”:“4-w3d4-567-2376674f8uj8”,“时间戳”:1487716472000
}
这是我用于代码的链接:
如何在 python 中生成授权码/客户端密码以用于苹果登录和设备检查?