2014-09-25 10 views
2

사전 빌드 OAuth2 커넥터가있는 그래픽 프레임 워크를 사용하여 통합 구성 요소를 구축하고 있습니다. 토큰OAuth v2 (Google API) 만료 액세스 토큰

  • 그랜트 형식
  • 범위
  • 인증 서버 URL
  • 고객 ID
  • 클라이언트 비밀
  • 액세스 토큰
  • 새로 고침 : 이 프레임 워크는 OAuth를 v2의 필드 다음과 같은 필수

Google 웹 로그 분석 API에서 데이터를 가져와야하므로 Google Dev Console (https://console.developers.google.com/project/927890000889/apiui/credential)으로갔습니다. '웹 응용 프로그램의 클라이언트 ID'를 생성했습니다. 'authorisation_code'

  • 클라이언트 ID : 'RANDOMCHARSam5o37nsiu730d.apps.googleusercontent.com'비밀
  • 클라이언트 :이 객체의 매개 변수에서 나는

    • 부여 유형 위의 매개 변수의 일부를 채울 수 있었다 ' RANDOMCHARSiSwBA5OH5qYLUa '

    그리고 구글의 Oauth 놀이터 (https://developers.google.com/oauthplayground)이 내가 누락 된 비트를 채울 수 있었다 사용

  • 모든 것이 잘 작동 I 액세스 권한이 있으며 Google 애널리틱스에서 데이터를 가져옵니다. 잠시 후 다시 시도하면 몇 분 후에 인증 실패 오류가 발생합니다. 이 문제는 액세스 토큰의 만료와 관련이 있다고 생각하지만이를 해결하는 방법을 모르겠습니다. 이 활동은 배치 (사람과의 상호 작용 없음)이므로 아무도 새로운 액세스 토큰을 요청할 수 있습니다. 통합 프레임 워크는 확장 성이 없습니다 (코드를 갱신하는 코드를 작성할 수 없음). 따라서 만료되지 않는 액세스 토큰이나 동일한 결과를 얻기위한 다른 메커니즘을 얻을 수있는 방법이 있다고 생각합니다.

    결론 처음부터 요구 사항에 정확하게 접근했는지 확신 할 수 없습니다 (웹 응용 프로그램의 클라이언트 ID).

    어떤 도움이 많이 감사합니다, 조반니

    답변

    12

    액세스 토큰은 일반적으로 60 분에 만료됩니다. 새로 고침 토큰을 사용하는 경우 새로 고침 토큰을 사용하여 새 (유효한) 액세스 토큰을 얻을 수 있습니다.

    이 문서는 작업을 수행하는 방법에 대해 설명 :
    https://developers.google.com/accounts/docs/OAuth2WebServer#refresh

    올바르게, 그래, 당신이 모든 접근하고 당신의 무엇보다 중요한 질문에 대답하기. 액세스 토큰이 새로 고쳐 져서 만료 된 경우를 처리하기 만하면됩니다. 또한 처음에 액세스 토큰을 요청할 때 응답에서 유효 기간을 알려야하므로 만료 된 경우에만 토큰을 새로 고쳐야합니다.

    +0

    안녕하세요 필립, 도와 주셔서 감사합니다. 내가 준 링크를 살펴 보았습니다. 내 이해, access_token 만료하는 동안 refresh_token 있지 않습니다. access_token이 만료되면 refresh_token을 사용하여 요청을 보내면 Google Oauth 구현에서 자원에 액세스하는 데 사용할 수있는 새로운 access_token을 다시 전송합니다. 여기서는 Google Analytics 인증을 인증합니다. 제 의견이 맞습니까? 건배, Giovanni –

    +0

    네 말이 맞습니다. 새로 고침 토큰 요청이 실패 할 수 있음을 명심하십시오. 원래 승인자가 액세스 권한을 취소 한 경우에 발생하지만 원래 승인자 인 경우 분명히 걱정할 필요가 없습니다. –

    +0

    새로 고침 토큰으로 액세스 토큰을 요청할 수 있습니까? 그래서 나는 그것을 시간 사용자 액세스에 영구적으로 사용할 수 있습니까? 그렇지? –

    0

    새로 고침 토큰을 사용하면 더 오래 사용할 수 있습니다. Google 인증 서버에서 새로 고침 토큰이 만료되지 않습니다. 다음 이유 중 하나로 인해 토큰이 작동하지 않을 수 있습니다. 사용자가 액세스 권한을 취소했습니다. 토큰을 6 개월 동안 사용하지 않았습니다. 사용자가 비밀번호를 변경했으며 토큰에 Gmail 범위가 포함되어 있습니다. 사용자 계정이 특정 토큰 요청 수를 초과했습니다. 현재 클라이언트 당 사용자 계정 당 50 개의 새로 고치기 토큰의 한계가 있습니다. 한도에 도달하면 새 토큰을 만들면 경고없이 가장 오래된 토큰이 자동으로 무효화됩니다. 이 제한은 서비스 계정에는 적용되지 않습니다.

    출처 : https://developers.google.com/identity/protocols/OAuth2