2017-10-05 7 views
0

내 질문은 이미 다음과 같은 질문에 약 90 %에 대한 답변 :
How to get the refresh token with Google OAuth2 Javascript library?순수한 클라이언트 측 애플리케이션에서 Google OAuth 2.0 API의 access_token을 새로 고치는 방법은 무엇입니까?

내가 클라이언트 측 JS 웹 응용 프로그램을 가지고있다. 이 애플리케이션에서는 Google API를 사용하려고합니다. 이를 위해 매시간 access_token을 새로 고쳐야하지만,이 없으면 없이 Google 로그인 화면이 반복해서 표시됩니다. 현재 서버 측 코드가 없으므로 서버 쪽 코드를 사용하지 않아도되므로 응용 프로그램의 이식성이 향상되었습니다 (예 : Electron).

즉, 내가 가진 유일한 가능성은 위에 링크 된 질문의 대답에서 옵션 2입니다. 그것은 말합니다 :

클라이언트는 단순히 액세스 토큰을 계속 요청합니다. immediate=true을 설정하면 사용자와의 상호 작용이 눈에 보이지 않습니다.

내가 모두 문서화를 통해 검토 한 결과 : Google API Client LibraryGoogle Identity Platform (백그라운드에서 클라이언트 라이브러리에서 사용되고있는 직접의 OAuth 2.0 엔드 포인트입니다).

immediate이라는 옵션을 찾을 수 없습니다. 그러나이 고객은 refresh_token을 사용하지 않고 순수한 클라이언트 측 웹 응용 프로그램 내에서 access_token을 새로 고칠 수 있어야한다고 말합니다. 그러나 어떻게?

웹 패키지 기반 프로젝트와 통합하기가 너무 어렵 기 때문에 클라이언트 라이브러리를 사용하는 것을 완전히 피하고 싶습니다 ... 그래서 저는 OAuth 엔드 포인트가 어떻게 보이는지에 대한 HTTP 요청을 다시 원합니다.

편집 : 고정 잘못된 링크

답변

0

당신이 연결 대답은 클라이언트 라이브러리의 이전 버전으로 언급했다. 현재 버전은 https://developers.google.com/identity/protocols/OAuth2UserAgent에 문서화되어 있으며 (NB 테스트를 거치지 않은) immediate=true에 해당한다고 믿습니다. prompt=none

+0

이것이 내가 찾고있는 것 같습니다. 그 외에도'.grantOfflineAccess()'메소드가 눈에 띄었다. 이제는 차이점을 알아 내야하고, 내가 필요한 것을 정확히 알면 HTTP 관점에서 무엇을 할 수 있는지 직접 확인해야합니다. 지금까지 감사드립니다. –

+0

grantOfflineAccess는 서버 인증 흐름과 함께 사용하기위한 것입니다. 순수한 JS/브라우저 솔루션을 찾고 있다면 grantOfflineAccess가 아닙니다. https://github.com/google/google-api-javascript-client/issues/232에 대한 의견을 보았습니다. "그러나 GSI v2가 캐싱 및 새로 고침 토큰을 처리하므로 라이브러리가 제대로 작동 할 수 있습니다. 너를위한 직업. – pinoyyid

+0

나는 지금 스스로 문제를 공개했다 : https://github.com/google/google-api-javascript-client/issues/343 나는 기본적으로 같은 말을 들었다. 그것은 단지 : 토큰의 자동 새로 고침이 작동하지 않는 것 같습니다. 자세한 내용은이 문제에 나와 있습니다. –