访问令牌过期后如何自动重新获取Python脚本中的访问令牌?

问题描述

所以我正在仅使用访问令牌从 api 获取数据。我创建了两个 python 脚本,一个用于获取令牌,另一个用于获取数据。我为两个脚本创建了一个公共变量“令牌”。但是,当令牌在 15 分钟后过期时,我必须手动重新启动脚本。这个问题有解决方案吗?

授权码:

response = requests.request("POST",url,headers=headers,data=payload)

token = response.json()['access_token']

获取样本:

  response2 = requests.request("GET",qurl,headers=headers2,data=payload2)
  r2=response2.json()
  payload={}
  headers = {
  'Host': 'proxy.sample.com','Accept': 'application/vnd.sample.v1+json','Authorization': 'Basic 
  MFQxOE5HYmFsUURGYzBnWkh6b3ZwZVJkN0a1Y3BMQ3w6dnwnamFZa3Ric2p4OUFPUg==','Accept-Encoding': 'br;q=1.0,gzip;q=0.9,deflate;q=0.8','Accept-Language': 'en-US;q=1.0,ar-US;q=0.9','Content-Type': 'application/json','User-Agent': 'SampleApp/3.37.0 (com.sample.mobile.consumer; build:3.#; iOS 
   14.4.1) Alamofire/5.2.2','access_token': token

注意:我不希望一次有多个脚本实例。

解决方法

只是一个想法,假设您使用的是循环,您可以使用 except。 因此,当错误发生时,代码会让您重新登录并继续

例如

while True:
    try:
        {script here}

    except {ErrorType}:
        print('token expired')
        {relogin code}
        continue