Home > Backend Development > Python Tutorial > Azure bearer token lifecycle

Azure bearer token lifecycle

WBOY
Release: 2024-02-22 13:00:14
forward
523 people have browsed it

Azure 不记名令牌生命周期

Question content

I have a python code that calls the graphics api and browses a directory on a sharepoint. The directory has 120gb of files and takes hours to scan. However, I observed that the script only appears to be running on visual studio code and does not execute further. I print the filename in a loop and after an hour it stops inputting the filename.

Is it because the token expires in one hour? If so, why don't I get an error indicating that the token is invalid?

# Define imports
import requests

# Copy access_token and specify the MS Graph API endpoint you want to call, e.g. 'https://graph.microsoft.com/v1.0/groups' to get all groups in your organization
#access_token = '{ACCESS TOKEN YOU ACQUIRED PREVIOUSLY}'

url = "[URL TO THE SHAREPOINT]"
headers = {
  'Authorization': access_token
}

consentfilecount=0
clientreportcount = 0
graphlinkcount = 0

while True:#
    #print(graph_result.json()['@odata.nextLink'])
    graph_result = requests.get(url=url, headers=headers)
    if ('value' in graph_result.json()):
      for list in graph_result.json()['value']:
        if(("Client Consent Form").lower() in list["name"].lower()):
            consentfilecount +=1
            print(list["name"])
        if(("Final Client Report").lower() in list["name"].lower()):
            clientreportcount +=1
            print(list["name"])
        #print(graph_result.json())
      if('@odata.nextLink' in graph_result.json()):
        url = graph_result.json()['@odata.nextLink']
        graphlinkcount += 1
      else:
        break

print(consentfilecount)
Copy after login


Correct answer


The behavior you describe is almost certainly due to the bearer token you seem to be using which is indeed only valid for an hour or so.

By default, requests does not raise exceptions based solely on HTTP status codes allowing developers to choose how they want to handle such situations. In your case, your while true: loop just keeps running, successfully parsing the json structure returned from the error response, but never actually satisfying any of the conditions within the block.

If you do want the script to raise an exception on unsuccessful http response codes, you can add a call to raise_for_status():

graph_result = requests.get(url=url, headers=headers)
graph_result.raise_for_status()
Copy after login

However, if your code's expected uptime exceeds the token's validity period, you should probably use the proper oauth refresh process in your code to prevent this type of error from occurring.

The above is the detailed content of Azure bearer token lifecycle. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template