Python
google api 에서 access token 을 refresh 하는것관련해서 질문 드립니다. 좋은밤되세요!

 

안녕하세요! 

 

저는 지금 google api 문서를 보면서 gmail 메일함을 가져오는것을 만들어보고있습니다. 

 

함수중애 build라는 애가 있는데 

 

service = googleapiclient.discovery. build('gmail', 'v1', credentials=credentials) 이런식으로 인증정보를 넣으면 

 

service.users().getProfile(userId='me').execute() 

 

이런식으로 구글 api를    호출할수 있는 리소스를 반환해 줍니다. 

 

이때 인증정보(credentials) 에 access_token, refresh_token을 넣는데 

 

access_token 이 만료된 경우에도 같이 첨부한 refresh_token을 이용해서 함수 내부에서 refresh를 해서

 

구글서버에 요청을 보내 호출가능한 리소스를 반환하는것 같슴니다. 

 

제가 궁금한 포인트는 ( 엑세스토큰의 유효성 검사 + 엑세스토큰 갱신)  에 관한 코드가 build 라는 함수안

 

에 다 들어있어서 유저 입장에서는 ( 엑세스토큰의 유효성 검사 + 엑세스토큰 갱신) 을 신경 안쓰고 

 

유효한 refresh token만 저장했다가 build 함수에 넣어주면 되는것 같은데 그렇게 해도 될까요?

 

제 짧은 생각으로는 google에서 발급하는 access token은 1시간 안에 만료되니까 저장 안하고 그때그때

 

이런식으로 필요할때 쓰는것도 괜찮을거 같습니다.  

 

그리고 만약 access token을 저장할 필요가 있다면 build 함수실행결과 반환된 리소스 로 부터 얻는 방법

 

은 없을까요?

 

api문서, build 함수와 관련된 라이브러리를 몇시간째 찾고있는데 

 

한번 이런식으로 credential을 이용해서 가져온 리소스 

 

service = googleapiclient.discovery. build('gmail', 'v1', credentials=credentials) 

 

로 부터 엑세스 토큰을 얻는 방법은 찾을수가 없습니다. 

 

이게 구글 쪽에서도 엑세스 토큰을 따로 저장할 필요 없기 때문에 그런 방법을 만들어 놓지 않았나.. 추측

 

을 해봤습니다. 

 

아래링크의 문서처럼 

 


 

https://developers.google.com/identity/protocols/OAuth2WebServer#offline

post요청을 직접 보내서 access token을 갱신시키는 방법은 알겠는데..

 

한번 build함수 이용해서 리소스를 가져올때 access token 을 갱신한 격인데 

 

이걸 따로 post 요청 보내서 저장하려고 생각을 해보니... 이건 아닌것 같아서 고민이 많습니다..

 

물어볼곳도 없고 횡설수설 글을 남겼는데... 

 

좋은밤되시고 내일 도 좋은하루되세요 ! 

댓글 0