2016-10-05 2 views
0

FB 로그인을 사용하여 액세스 토큰을 서버에서 수명이 긴 것으로 변환 한 다음 데이터베이스에 저장합니다. 문서 here에 따르면이 액세스 토큰을 사용하여 요청을하면 60 일 동안 유효해야합니다.장기간 (60 일) 사용자 액세스 토큰 확장

제공되는 모든 사용자 (access_token, client_id, client_secret)에 대해 4 시간마다/[userID]/그림 요청을하고 있습니다. 그러나 토큰은 생성 일로부터 60 일이 지나면 만료됩니다.

나는 다른 StackOverflow 답변에서 본 것처럼 다음 코드를 시도했지만 생성 된 새 토큰은 60 일 연장되지 않았습니다. 이 답변들은 this page (죽은 링크)에 링크되어 있습니다.

https://graph.facebook.com/v2.x/oauth/access_token?    
    client_id=APP_ID& 
    client_secret=APP_SECRET& 
    grant_type=fb_exchange_token& 
    fb_exchange_token=EXISTING_ACCESS_TOKEN 

TLDR : 어떻게 다시 로그인 할 필요 사용자없이 수명이 긴 토큰을 연장 할 수 있습니까? 가능한가?

답변

-1

당신이해야 할 모든 HERE 가서 붙여 넣기하는 것입니다 짧은 토큰, 다음 버튼을 액세스 토큰을 확장 누르고 새로운 토큰이 을 생성 할 것이다. 보다 새로운 토큰을 사용해야하고 이전 버전이 아닌 인 경우입니다.

는 희망이 도움이^_^

+0

이미 긴 토큰이 있습니다. 링크 된 양식에 확장 토큰이 없습니다. 수명이 긴 토큰을 확장하는 방법이 있습니까? –

0

https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension에서 :

새로 고침 수명이 긴 토큰

에도 수명이 긴 액세스 토큰 결국 만료됩니다. 어느 시점에서든 웹 응용 프로그램에서 사용하는 로그인 흐름으로 사람을 보내서 새로운 수명이 긴 토큰을 생성 할 수 있습니다. 실제로 다시 로그인 할 필요가 없으며 이미 응용 프로그램을 승인 했으므로 사람들이 새로 고친 토큰을 사용하여 로그인 흐름에서 앱으로 즉시 리디렉션합니다. 예를 들어 JavaScript SDK를 사용하는 경우 사용하는 로그인 흐름 유형에 따라 사람에게 나타나는 방식이 달라집니다. 백그라운드에서 서버 측 흐름을 사용하는 경우 브라우저는 신속하게 로그인 대화 상자로 리디렉션 한 다음 자동으로 즉시 다시 앱으로 돌아갑니다.

위의 작업을 수행 한 후에 새 수명이 짧은 토큰을 얻은 다음 위와 같이 수명이 긴 토큰에 대해 동일한 교환을 수행해야합니다. 가 (사용자 상호 작용을 필요로) 새로운 단명 하나를받지 않고 수명이 긴 토큰을 갱신 할 수없는 것처럼

그래서 보이는

자동 갱신 요청에 네이티브 모바일 앱에서만 사용할 수 있습니다 (Android/iOS) :

Facebook의 SDK를 사용하는 네이티브 모바일 앱은 약 60 일 동안 오래 사용할 수있는 액세스 토큰을 오래 사용할 수 있습니다. 이 토큰은 앱을 사용하는 사람이 Facebook 서버에 요청할 때 하루에 한 번 새로 고칩니다. 요청이 없으면 약 60 일 후에 토큰이 만료되며 사용자는 새로운 토큰을 얻기 위해 다시 로그인 흐름을 거쳐야합니다.

관련 문제