我通过Python的'requests'-module发出API请求。我收到了access_token,这是一个Bearer令牌。 我把令牌放到这样的变量中:
def get_token():
url = 'https://myapiurl.com/oauth/token'
payload = {'username':'myusername', 'password':'mypassword'}
headers = {'Content-Type': 'application/json', 'origin': 'https://blabla.com'}
r = requests.post(url, data=json.dumps(payload),headers=headers)
mytoken = r.json()['token_type']
mytokentype = r.json()['access_token']
token_param = str(mytoken) + ' ' + str(mytokentype)
return token_param
输出是具有以下结构的字符串:
Bearer eyJ0eXAiOiJKV1QiLCJhb.....0sImF6cCI6ImVCOEdI
对于需要此access_token的以下GET请求,我需要此结构。每次我发出新的GET请求时,我都不想获得新的令牌。
我在找到如何:
方面遇到了问题1:存储access_token
2:检查access_token是否有效
3:使用此令牌在我的API上发出其他GET请求。
我非常感谢任何建议。
答案 0 :(得分:0)
我的回答:
我已将POST请求的整个输出放入变量result
。
我的令牌的结构必须是这样的:“Bearer tokenstring”。
所以我将类型放入变量result_tokentype
,将标记字符串放入变量result_accesstoken
。
最后,我将它们放在变量accessToken
:
result_tokentype = result["token_type"]
result_accesstoken = result["access_token"]
accessToken = str(result_tokentype) + " " + str(result_accesstoken)
现在我在正确的结构中有完整的字符串,我可以将此变量用于下一个请求,例如:
url = "https://myurl.com"
headers = {"Authorization": accessToken, "key1": "value1", "Content-Type": "application/json" }
conn.request("GET", url, headers=headers)
这对我来说是最好的,在这里。