2014-04-02 2 views
1

Nodejs Google Api 클라이언트 Oauth 프로세스에서 작업하고 있습니다. oauth, https://github.com/google/google-api-nodejs-client/blob/master/examples/oauth2.js의 코드 예제를 따릅니다.NodeJS Google Api 클라이언트 : 액세스 토큰이 만료되었음을 어떻게 알 수 있습니까?

나는 하나의 질문이 있습니다. 액세스 토큰이 만료되었는지 확인하고 새로 고침 토큰을 사용하여 다른 액세스 토큰을 다시 얻는 방법은 무엇입니까? 응용 프로그램 (backbonejs)의 클라이언트 측에서, 또한

getAccessToken(oauth2Client, function() { 
    // retrieve user profile 
    getUserProfile(client, oauth2Client, 'me', function(err, profile) { 
     if (err) { 
     console.log('An error occured', err); 
     return; 
     } 
     console.log(profile.displayName, ':', profile.tagline); 
    }); 
    }); 

:

은 이제 구글 + 사용자 프로파일에 액세스 할 수 가정 해 봅시다, 구체적으로는, 그래서 사용자 프로필을 얻을 수있는 액세스 토큰을 사용 내가 구글 플러스 JS 액세스 (구글 플러스가 아니라) API를 액세스하는 Google 애플 리케이션을 사용하려고하는 경우, 내가 응용 프로그램 (nodejs)의 서버 쪽에서 얻을 액세스 토큰을 사용할 수 있는지 모르겠습니다 또는 다른해야합니까 OAuth는 Google API JS 클라이언트를 사용합니다.

답변

3

액세스 토큰이 만료되었는지 확인하는 최선의 방법은 시도하고 사용하는 것입니다. 반환 된 번들에는 * expires_in * 매개 변수가 포함되어 있지만 액세스 토큰이 만료 될 때까지의 시간 (초)을 나타내지 만 언제든지 다른 이유로 취소되거나 대체 될 수 있으므로 신뢰할 수 없습니다.

절차는 일반적으로, 당신은 "허가되지 않은"응답을받을 경우

  • 액세스 토큰을 사용하여 전화를 걸 새 액세스 토큰을 얻을 수있는 Referesh는 토큰을 사용하는

    1. 시도이다. 이것이 실패하면, 당신의 권한은 다른 Google API 호출을 수행하는 라이브러리를 사용하는 경우

    토큰 다시 새 액세스를 사용하여 전화를 걸 수

  • 시도가 취소되었습니다 -이 자동으로 처리됩니다 .

  • +0

    답변 해 주셔서 감사합니다. 새로 고침 토큰을 어떻게 사용할 수 있습니까? (코드 현명). 또한, 당신의 마지막 진술을 위해, 나는 약간 혼란 스럽습니다. 무엇이 처리 될 것인가? oauth? 다른 API 호출은 무엇을 의미합니까? 명시 적으로 액세스 토큰을 다시 가져 오기 위해 새로 고침 토큰을 사용하는 코드를 작성하는 방법을 알고 있습니까? 많은 감사! – user3203518

    +0

    귀하의 질문에 답변 할 수는 있습니다 만, 귀하가하고있는 일의 배경에 대해 조금 더 알고 있다면 도움이 될 것입니다. 일단 액세스 토큰을 사용하면 어떻게 사용합니까? OAuth 외의 다른 Google API에 액세스하기 위해 google-api-nodejs-client 라이브러리를 사용하고 있습니까? 그렇다면 어느 것입니까? (그렇지 않다면 왜 그런 API에 액세스합니까?) (그리고 질문을 수정하고 가지고 있다고 말하십시오.) – Prisoner

    +0

    정말 고마워! 설명이 지금 편집됩니다. 그게 더 명확 해 졌나요? – user3203518

    관련 문제