2014-05-20 6 views
5

Próbuję uzyskać tokeny dostępu od OAuth.io dla dowolnego dostawcy usług Google, jednak za każdym razem, gdy uwierzytelniam, otrzymuję hasło access_token, ale nie odświeżam. Wybrałem offline dla typu access_type, ale nadal nie ma radości.Otrzymywanie odświeżających tokenów od Google za pomocą OAuth.io

Próbowałem przeglądać dokumentację rozwiązania, ale ledwo obejmuje wszystko związane z odświeżania tokena.

Odpowiedz

10

Aby otrzymać token odświeżania z Google, trzeba 2 rzeczy:

  • opcję nieaktywny cf https://developers.google.com/accounts/docs/OAuth2WebServer

    „token, które mogą być wykorzystywane w celu uzyskania nowego tokenu dostępu. Odświeżenie tokenów jest ważne, dopóki użytkownik nie odwoła dostępu. To pole jest obecne tylko wtedy, gdy access_type = offline jest zawarty w żądaniu kodu autoryzacyjnego. "

  • Opcja approval_prompt ustawiony na „życie” cf https://developers.google.com/accounts/docs/OAuth2WebServer

    „. Ważne: Gdy aplikacja otrzymuje token odświeżania, ważne jest, aby przechowywać te odświeżania tokenu do wykorzystania w przyszłości, jeśli aplikacja traci token odświeżania, będzie musiał ponownie poprosić użytkownika o zgodę przed uzyskaniem kolejnego tokena odświeżania. Jeśli musisz ponownie poprosić użytkownika o zgodę, dołącz parametr approval_prompt do żądania kodu autoryzacji i ustaw wartość do wymuszenia . "

więc skrypt powinien wyglądać mniej więcej tak

OAuth.popup('google', { 
    authorize: { 
     approval_prompt: 'force' 
    } 
}).then(function(google) { 
    console.log(google.refresh_token) 
    //send the refresh token to your server 
}) 

Jeśli pracujesz po stronie klienta (JavaScript/iOS/Android/PhoneGap), może być konieczne, aby włączyć następujące opcje: Send refresh token to front-end w desce rozdzielczej OAuth.io> Ogólne> zaawansowana opcja aby umożliwić stronie klienta SDK do pobrania odświeżenie tokena

https://jsfiddle.net/Lqyc5jpw/

Powiązane problemy