Google 새로 고침 토큰이 만료 되나요?


108

테스트 목적으로 단기간에 새로 고침 토큰을 여러 번 사용했는데 Google 새로 고침 토큰이 만료되는지 궁금합니다. 동일한 새로 고침 토큰을 사용하여 장기간 (1 주 또는 심지어 몇 달) 동안 다른 액세스 토큰을 반복해서 얻을 수 있습니까?


루비를 사용하고 있습니까? 아니면 코드 샘플이 있습니까?
Thufir

답변:


146

Google Auth 서버에서 발행 한 새로 고침 토큰은 만료되지 않습니다. 이것이 새로 고침 토큰의 요점입니다. 사용자가 애플리케이션에 대한 액세스를 취소하면 새로 고침 토큰이 만료됩니다 (또는 권한이 없음).

문서를 참조하면 새로 고침 토큰의 기능을 명확하게 설명합니다.

오래 지속되는 토큰 (일반적으로 1 년 또는 무제한 수명 동안 유효)을 발행하는 대신 서버는 수명이 짧은 액세스 토큰과 수명이 긴 새로 고침 토큰을 발행 할 수 있습니다. 즉, 액세스 권한을 부여한 사용자가 애플리케이션에 대한 액세스를 취소 할 때까지 새로 고침 토큰을 반복해서 사용할 수 있습니다.


6
"1 년 동안 좋다"부분은 당신이 제안한 것만 큼 명확하지 않다. 그러나 실제로 문제를 일으키지 않는 것 같기 때문에 새로 고침 토큰이 상록수라고 가정합니다.
mahemoff 2013 년

54
토큰 만료 부여 된 토큰이 더 이상 작동하지 않을 가능성을 예상하는 코드를 작성해야합니다. 다음 이유 중 하나로 인해 토큰 작동이 중지 될 수 있습니다. 사용자가 액세스를 취소했습니다. 토큰은 6 개월 동안 사용되지 않았습니다. 사용자 계정이 특정 토큰 요청 수를 초과했습니다. 현재 Google 사용자 계정 당 25 개의 토큰 제한이 있습니다. 사용자 계정에 25 개의 유효한 토큰이있는 경우 다음 인증 요청은 성공하지만 사용자에게 표시되는 경고없이 가장 오래된 미해결 토큰을 자동으로 무효화합니다. (from developers.google.com/accounts/docs/OAuth2 )
bazik 2014 년

17
'장수'갱신 토큰은 '만료 없음'과는 다른 것입니다.
Kapé 2015 년

1
그렇다면 코드는 새로 고침 토큰이 여전히 유효한지 어떻게 확인할 수 있습니까?
SsjCosty

3
@Shadow 제안 된대로 새로 고침 토큰이 거의 만료되지 않는 경우 Google은 우선 만료되지 않는 액세스 토큰을 발급하지 않는 이유가 무엇입니까? 내가 이해하는 한, oAuth 2.0을 사용하여 발급 된 액세스 토큰은 새로 고침 토큰을 요청하는 데 사용할 수 있습니다. 영구 액세스 토큰을 보유하고 새로 고침 토큰에 대한 추가 호출을 잘라내십시오.
Charles Robertson

62

이것은 매우 혼란스러운 스레드입니다. 첫 번째 대답은 옳은 것처럼 보이지만 실제로 Google의 권위있는 내용을 인용하지는 않습니다.

내가 찾은 가장 확실한 답은 실제로 토큰을 얻는 개발자의 놀이터입니다. 2 단계 하단에는 다음과 같은 메모가 있습니다.

"참고 : OAuth Playground는 새로 고침 토큰을 저장하지 않지만 새로 고침 토큰은 만료되지 않으므로 수동으로 취소하려면 Google 계정 승인 액세스 페이지로 이동해야합니다."

https://developers.google.com/oauthplayground/


2
여기에 가장 좋은 답변-왜 아무도 찬성하지 않았는지 믿을 수 없습니다. 감사합니다. 새로 고침 토큰을 만료되지 않는 것처럼 취급하세요.하지만 로그인시 사용자가 새로 고침 토큰을 취소 할 경우 새 토큰을 확인하세요.이 시나리오에서는 Google이 새 새로 고침 토큰을 제공합니다. 로그인 할 때 새로 고침 토큰을 업데이트하세요
danday74 jul.

14

나는 그것이 완전히 사실이라고 생각하지 않습니다.

발급 될 새로 고침 토큰 수에는 제한이 있습니다. 클라이언트 / 사용자 조합 당 한도, 모든 클라이언트의 사용자 당 한도입니다. 새로 고침 토큰을 장기 저장소에 저장하고 유효한 상태로 유지되는 한 계속 사용해야합니다. 애플리케이션에서 너무 많은 새로 고침 토큰을 요청하면 이러한 제한에 도달 할 수 있으며,이 경우 이전 새로 고침 토큰이 작동을 중지합니다.

이 페이지에서 : https://developers.google.com/youtube/v3/guides/authentication#installed-apps

그것은 youTube 문서 (다른 API 문서보다 훨씬 낫다는 것을 알았습니다)에서 온 것이지만 모든 Google 앱에서 동일하다고 생각합니다.



5

2017 년에 이것에 대한 규칙이 변경 되었기 때문에 가장 좋은 대답은 제품에 따라 다르다는 것입니다. 예를 들어 Gmail API에서 Oauth 2.0 새로 고침 토큰은 비밀번호 변경시 만료됩니다. https://support.google.com/a/answer/6328616?hl=ko를 참조 하세요.

우리는 미리 API 액세스를 설정하고 새 Gmail 사용자를 설정할 때 새로 고침 토큰을 생성 한 다음 해당 메일을 보관할 수 있었지만 (법률에 따라 수행해야 함) 이제는 암호를 변경하는 즉시 새로 고침 토큰 취소되었습니다.

아마도 유튜브,지도의 경우 새로 고침 토큰은 여전히 ​​오래 지속되지만 Gmail API의 경우 짧은 토큰에 의존합니다.


2016 년 10 월 5 일에 공식화 한 것 같습니다. developers.googleblog.com/2016/09/…
TonyE

2

새로 고침 토큰의 주요 개념은 오래 지속되고 만료되지 않는다는 것입니다.

액세스 토큰에는 만료 시간이 있으며 만료되면 만료되면 사용자가 자신의 계정에서 취소 할 때까지 계속해서 사용할 토큰 새로 고침을 사용할 수 있습니다.


0

https://developers.google.com/identity/protocols/oauth2#expiration 에서 읽어보십시오 . 부여 된 새로 고침 토큰이 더 이상 작동하지 않을 가능성을 예상하려면 코드를 작성해야합니다. 다음 이유 중 하나로 인해 새로 고침 토큰이 작동하지 않을 수 있습니다.

사용자가 앱의 액세스를 취소했습니다. 새로 고침 토큰이 6 개월 동안 사용되지 않았습니다. 사용자가 비밀번호를 변경했으며 새로 고침 토큰에 Gmail 범위가 포함되어 있습니다. 사용자 계정이 허용 된 (라이브) 새로 고침 토큰의 최대 수를 초과했습니다. 현재 클라이언트 당 사용자 계정 당 새로 고침 토큰은 50 개로 제한됩니다. 제한에 도달하면 새 새로 고침 토큰을 만들면 경고없이 가장 오래된 새로 고침 토큰이 자동으로 무효화됩니다. 이 제한은 서비스 계정에는 적용되지 않습니다.

또한 사용자 계정 또는 서비스 계정이 모든 클라이언트에서 가질 수있는 총 새로 고침 토큰 수에 더 큰 제한이 있습니다. 대부분의 일반 사용자는이 제한을 초과하지 않지만 개발자의 테스트 계정은 가능합니다.


-2

추가 조사를 수행했으며 첫 번째 '오프라인'요청 중에 Google 액세스 토큰이 새로 고침 토큰을 검색하는 데 사용되는 것 같습니다. 이 시점부터 새로 고침 토큰을 사용하여 새 액세스 토큰을 발급합니다. 개념은 액세스 토큰이 단기 토큰이지만 장기 갱신 토큰으로 갱신 할 수 있다는 것입니다. 이렇게하면 두 개의 엔드 포인트 접근 방식이 필요하고 리퍼러 기반 요청을 사용하여 시작해야하는 URL 'code'변수를 요청할 필요가 없습니다.

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Dropbox와 같은 일부 REST API 서비스는 영원히 지속되는 액세스 토큰을 발행하지만 Google은 단기 액세스 토큰을 발행합니다. PayPal은 타협을 사용하여 URI 리퍼러 시행없이 액세스 토큰을 검색 할 수 있습니다. 이는 프로세스를 시작하기 위해 링크를 클릭하지 않고도 액세스 토큰을 검색 할 수 있음을 의미합니다. Google의 방법론은 API 루틴이 필요한 경우에만 호출되어야 함을 의미합니다. 기본적으로 호출은 참조 자 기반 절차를 통해 시작됩니다. 이는 단기 액세스 토큰 또는 체인에서 새로 고쳐야하는 액세스 토큰을 발행하여 제어됩니다. 이를 위해서는 개발자가 시스템 흐름에 대해 더 신중하게 생각해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.