>백엔드 개발 >파이썬 튜토리얼 >Azure 전달자 토큰 수명 주기

Azure 전달자 토큰 수명 주기

WBOY
WBOY앞으로
2024-02-22 13:00:14503검색

Azure 不记名令牌生命周期

질문 내용

그래픽 API를 호출하고 공유 포인트의 디렉터리를 탐색하는 Python 코드가 있습니다. 디렉터리에는 120GB의 파일이 있으며 검색하는 데 몇 시간이 걸립니다. 그러나 스크립트가 Visual Studio 코드에서만 실행되는 것처럼 보이고 더 이상 실행되지 않는 것으로 나타났습니다. 루프에서 파일 이름을 인쇄하고 있는데 한 시간 후에 파일 이름 입력이 중지됩니다.

토큰이 1시간 뒤에 만료되기 때문인가요? 그렇다면 토큰이 유효하지 않다는 오류가 표시되지 않는 이유는 무엇입니까?

# 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)

정답


당신이 설명하는 동작은 거의 확실하게 당신이 사용하고 있는 것으로 보이는 전달자 토큰 때문인데 실제로는 한 시간 정도만 유효합니다.

기본적으로 requests does not raise exceptions based solely on HTTP status codes 允许开发人员选择他们想要如何处理此类情况。在您的情况下,您的 while true: 루프는 계속 실행되어 오류 응답에서 반환된 json 구조를 성공적으로 구문 분석하지만 실제로 블록 내의 어떤 조건도 충족하지 않습니다.

실패한 http 응답 코드에 대해 스크립트에서 예외를 발생시키려면 raise_for_status()에 대한 호출을 추가할 수 있습니다.

으아악

그러나 코드의 예상 가동 시간이 토큰의 유효 기간을 초과하는 경우 이러한 유형의 오류가 발생하지 않도록 코드에서 적절한 oauth 새로 고침 프로세스를 사용해야 합니다.

위 내용은 Azure 전달자 토큰 수명 주기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제