Google OAuth의 액세스 토큰 만료 시간대 (Google OAuth's access token's expiry timezone)


문제 설명

Google OAuth의 액세스 토큰 만료 시간대 (Google OAuth's access token's expiry timezone)

I recently switched to the Google+ Sign in OAuth2 hybrid approach.

When the request code is exchanged for the access token, the expiry time and created time is sent back along with the access token in seconds.

I need to know the sent timezone is. I need this to make comparison with my server's time and be able to deduce if access token has actually expired.

What's the timezone or how do I determine it?


참조 솔루션

방법 1:

The token bundle sent back does not include an actual expiration time, but it does contain the number of seconds for the expected life of the token. If a time is being attached to it, it is being attached by the local library.

That said ‑ you can't necessarily trust this number. There are a number of reasons why the token may have been revoked or is treated as no longer valid. So while you can use it as an estimate of when you'll need to get a new one ‑ you should also handle the case where you use a token and you get an authentication error, forcing you to refresh the token and try again.

방법 2:

My bad.

I just went through the Google PHP APi client library. Only to realize the created field was set within the library (on my server) in Google_Auth_OAuth2's authenticate method.

So it is safe to use $client‑>isAccessTokenExpired() instead to try to do one's computation. Works with local time (I guess :))

Thank you.

(by yomexzoPrisoneryomexzo)

참조 문서

  1. Google OAuth's access token's expiry timezone (CC BY‑SA 3.0/4.0)

#OAuth #oauth-2.0 #google-oauth #google-plus






관련 질문

포도 API 및 OAuth (Grape API and OAuth)

단일 사용자 계정에 대해 동일한 타사 애플리케이션을 여러 번 승인하는 방법은 무엇입니까? (How to handle authorizing the same third-party application multiple times for a single user account?)

Google OAuth의 액세스 토큰 만료 시간대 (Google OAuth's access token's expiry timezone)

Facebook에서 앱 ID를 얻는 방법 (How to get app id on Facebook)

새로 고침 토큰을 사용하여 백그라운드에서 인증을 받고 액세스 토큰을 얻는 방법은 무엇입니까? (How to use refresh token to get authorized in background and getting access token?)

JSON 웹 토큰을 사용하여 Chrome 확장 프로그램에서 내 앱으로 POST 요청을 인증하는 방법은 무엇입니까? (How to authenticate a POST request from a chrome extension to my app with JSON web tokens?)

LAN 내부에 인증 자동 기능이 있는 Grails 애플리케이션을 테스트할 수 없습니다. (Cannot test Grails application which has oauth autontication inside LAN)

신뢰할 수 없는 호스트를 사용하여 방화벽에서 보안 연결을 중개하는 방법은 무엇입니까? (How to broker secure connection across firewalls using untrusted host?)

로컬 HTML 파일에서 oAuth 흐름을 처리합니까? (Handling an oAuth flow from local HTML files?)

Twitter4J로 인증하는 방법은 무엇입니까? (how to authenticate with Twitter4J?)

IdentityServer4를 사용할 때 "코드 챌린지 필요" 메시지가 나타납니다. (I am getting "code challenge required" when using IdentityServer4)

Apache Superset 및 Auth0은 "브라우저(또는 프록시)가 이 서버가 이해할 수 없는 요청을 보냈습니다."를 반환합니다. (Apache Superset and Auth0 returns "The browser (or proxy) sent a request that this server could not understand.")







코멘트