如何为 API (Python) 上的更多请求存储 access_token

How to store access_token for more requests on API (Python)

我正在通过 Python 的 'requests' 模块发出 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 请求。

非常感谢您的建议。

我的回答:

我已将 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)

这里对我来说效果最好。