google api 에서 access token 을 refresh 하는것관련해서 질문 드립니다. 좋은밤되세요!
조회수 1326 답변수 0 반응수 0 등록일 2020.01.30 23:34:26


안녕하세요! 


저는 지금 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 요청 보내서 저장하려고 생각을 해보니... 이건 아닌것 같아서 고민이 많습니다..


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


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

답변 작성

질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.

답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.

답변이 채택되면 태그평판 +10점이 적립됩니다.

python 게시판 정보
  • 24
    질문수
  • 29
    아카이브수
  • 7
    채택수
  • 2
    멤버수
python 질문 통계
최근 30일
답변율
0%
채택율
0%
전체
답변율
16%
채택율
29%
최근에 등록된 질문