设备检查:无法验证授权令牌



我正在尝试让DeviceCheck工作,我不断从Apple的服务器收到以下响应:401 Unable to verify authorization token

device_token正在通过 JSON 有效负载中的 base64 编码字符串发送到我的 python 服务器。知道我可能做错了什么吗?

这是我的代码示例:

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

您需要在有效负载中添加颁发者密钥和 iat,然后它将起作用,请检查下面的代码

import time
def device_check_query(device_token):  
data = {  
'device_token': device_token,  
'transaction_id': str(uuid.uuid4()),  
'timestamp': int(time.time() * 1000),  
}  
jw_token = get_jw_token()  
headers = {'Authorization': 'Bearer ' + jw_token}  
response = requests.post(url, json=data, headers=headers)  
return response.content
def get_jw_token():  
with open('myfile.p8', 'r') as cert_file:  
certificate = cert_file.read()  
jw_token = jwt.encode(  
{'iss': issuer,'iat': int(time.time())}, certificate,  
algorithm='ES256',  
headers={'kid': keyid})  
return jw_token
device_check_query(u"1234e323a22133....")

相关内容

  • 没有找到相关文章

最新更新