Domanda

Ho usato l'API del grafico di Facebook (utilizza OAuth 2.0 per l'autenticazione) con successo per un po 'ora. Ora ho bisogno di scrivere la mia API che consente agli sviluppatori di connetterti ad esso in modo simile. Ho guardato in varie biblioteche ma mi piacerebbe qualcosa di un po 'più magro, quindi ho deciso di rotolare il mio. Guardando il codice Devo autenticare un utente su Facebook sembra relativamente semplice ma per favore correggimi se sto andando fuori pista.

Per prima cosa avrei bisogno di fornire una pagina sicura che il consumatore avrebbe bisogno di reindirizzare. ad es. https://api.mydomain.com/oauth/authorize?client_id=consumer_key&amt; redirect_url= callback_url . L'utente verificherebbe l'applicazione, quindi verrà reindirizzato all'URL fornito nell'URL di callback con la String OAuth_Token nella stringa di query. Suppongo di poter solo generare una stringa unica casuale qui per l'OAUTH_TOKTOK e memorizzarlo contro l'utente per questo particolare consumatore (Modifica: consultare la risposta qui sotto, questo dovrebbe essere unico per ogni applicazione dei consumatori e non l'utente). È il passaggio 1 fuori. Ora ho bisogno di fornire una seconda pagina sicura che il consumatore attiverà una richiesta Web. ad esempio https://api.mydomain.com/oauth/access_token?client_id= Consumer_key & client_secret= consumer_secret & oauth_token= oauth_token_returuned_above . Ciò consentirebbe al consumatore di scambiare gli OAUTH_Token restituiti sopra per un token di accesso. Vorrei semplicemente generare una stringa unica casuale e lo conserverò contro l'utente per questo particolare consumatore.

Ora la mia API accetterebbe il Access_Token per i metodi che tentano di afferrare informazioni specifiche per l'utente che lo sta usando.

Mi piacerebbe sapere se ho capito le cose correttamente. Le specifiche OAuth 2.0 sembrano estremamente banali se è così. Inoltre, perché dobbiamo scambiare l'OAUTH_TOKEN con un Access_Token? Ho la mia idea ma lo apprezzerei se qualcuno potesse aiutare a chiarire questo.

Apprezzerei davvero il tuo feedback perché non desidero andare avanti e perdere ore a implorare questo quando è completamente sbagliato.

Grazie

È stato utile?

Soluzione

Diagrammi di flusso del protocollo effettivamente sarebbero estremamente utili per visualizzare le specifiche come quella di OAuth 2, ma ci sono solo alcuni parziali funziona lì. Poiché ho appena implementato una biblioteca OAuth 2 lato client, posso verificare che tu sia sulla strada giusta. Ma qui è una cattura:

oauth_token appartiene alla tua applicazione client (I.e. A Desktop Facebook Reader) che autentica la tua applicazione (proprio come un ID). Si invia questo per recuperare un accesso_token, che è specifico per l'applicazione e l'utente registrato, che consente di accedere alle risorse limitate relative all'utente.

Ecco un processo di autenticazione di app per desktop di base (prelevato da: http://developers.gigya. com / 020_Developer_guide / 85_rest / oauth2 )

resto oauth 2.0

In realtà un flusso digram con timeline (dall'alto verso il basso, prelevato da: http://www.ibm.com/developerworks/web/library/wa-oauthsupport/?ca=drs- )

flusso del protocollo

E infine la procedura completa è: (presa da http://h2anetwork.org/projectdocs/ DPI / DPI_FRAMWork.html )

flusso di protocollo OAuth

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top