2014-05-20 14 views
5

Sto cercando di ottenere token di accesso da OAuth.io per qualsiasi provider basato su Google, tuttavia ogni volta che effettuo l'autenticazione ottengo un token di accesso ma nessun refresh_token. Ho scelto offline per access_type ma non ho ancora provato gioia.Ottenere token di aggiornamento da Google con OAuth.io

Ho provato a cercare nella documentazione una soluzione ma a malapena copre tutto ciò che riguarda il token di aggiornamento.

risposta

10

Per ottenere il token di aggiornamento da parte di Google, avete bisogno di 2 cose:

  • L'opzione offline cf https://developers.google.com/accounts/docs/OAuth2WebServer

    "Un token che può essere utilizzato per ottenere un nuovo token di accesso. I token di aggiornamento sono validi fino a quando l'utente revoca l'accesso. Questo campo è presente solo se access_type = offline è incluso nella richiesta del codice di autorizzazione. "

  • L'opzione approval_prompt impostata su "forza" cf https://developers.google.com/accounts/docs/OAuth2WebServer

    ". Importante: Quando l'applicazione riceve un token di aggiornamento, è importante memorizzare tale token di aggiornamento per uso futuro Se l'applicazione perde il token di aggiornamento, dovrà richiedere nuovamente all'utente il consenso prima di ottenere un altro token di aggiornamento. Se è necessario richiedere nuovamente all'utente l'autorizzazione, includere il parametro approval_prompt nella richiesta del codice di autorizzazione e impostare il valore per forzare ".

modo lo script dovrebbe essere simile a

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

Se si lavora sul lato client (Javascript/iOS/Android/PhoneGap), potrebbe anche essere necessario per attivare la seguente opzione: Send refresh token to front-end nel cruscotto OAuth.io> Generale> opzione avanzata per permettere al vostro SDK lato client per recuperare il token di aggiornamento

https://jsfiddle.net/Lqyc5jpw/

Problemi correlati