2014-11-13 27 views
9

Sto usando django-oauth-toolkit 0.7 nel mio progetto django per fornire oauth tramite il mio sito web, ho seguito i passaggi here e ho ottenuto il token di accesso. Ma non riesco a ottenere il nuovo access token (se il token di accesso è scaduto) con il token di aggiornamento . Sono in grado di ottenere il token di accesso con consumer client. Ma come posso ottenere questo con il mio URL nel mio sito web, perché non sono in grado di vedere quali parametri stanno andando al mio sito quando sto cercando di ottenere un nuovo token di accesso con un token di aggiornamento. Qualsiasi aiuto sarebbe appagato, Grazie in anticipo!Come utilizzare il token di aggiornamento per ottenere un nuovo token di accesso (django-oauth-toolkit)?

miei access token e aggiornare i token sono come questo:

{ 
    "access_token":"1/fFAGRNJru1FTz70BzhT3Zg", 
    "expires_in":3920, 
    "token_type":"Bearer", 
    "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" 
} 

E sto facendo funzionare il mio sito con localhost:8000

risposta

18

Per ottenere un nuovo access_token, utilizzando il vostro attuale refresh_token è necessario inviare una richiesta POST allo stesso url hai usato per ottenere il token in primo luogo (/o/token/, assumendo l'URL di default). Il numero grant_type ora sarà refresh_token e sarà inoltre necessario eseguire l'autenticazione con le credenziali del client, poiché ne è stato rilasciato uno.

In sintesi: curl -X POST -d "grant_type=refresh_token&client_id=<your_client_id>&client_secret=<your_client_secret>&refresh_token=<your_refresh_token>" http://localhost:8000/o/token/

Se volete maggiori informazioni, potete verifica questo link per vedere la relativa sezione dello standard.

+0

come si protegge il client segreto dell'applicazione oauth se è un client o un'applicazione mobile? –

+1

@AshishGupta È possibile eseguire il tunnel della richiesta tramite il proprio server. Ad esempio: crea uno script PHP e passa il token di aggiornamento ad esso. Il server conosce il segreto e lo invia all'API di Reddit e restituisce il risultato al client, in modo che il client non debba mai conoscere il segreto. – BnMcG

Problemi correlati