안녕하세요!
저는 지금 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 요청 보내서 저장하려고 생각을 해보니... 이건 아닌것 같아서 고민이 많습니다..
물어볼곳도 없고 횡설수설 글을 남겼는데...
좋은밤되시고 내일 도 좋은하루되세요 !
아직 댓글이 없습니다. 첫번째 댓글 작성자가 되어주세요 :)