Come autenticare gli utenti con Twitter OAuth 2.0

In questo tutorial imparerai come utilizzare Twitter API 1.1 e OAuth 2.0 per autenticare gli utenti dell'applicazione e pubblicare un tweet di prova.

Perché abbiamo bisogno di un framework di autenticazione?

Per creare servizi che agiscono per conto degli account degli utenti e renderli veramente sicuri e facili da sviluppare, abbiamo bisogno di tre cose:

  • Applicazione Twitter
  • API REST
  • accesso all'account utente

Per mettere insieme i pezzi in un meccanismo di lavoro, abbiamo bisogno di un framework di autenticazione. Come standard Twitter, l'API REST identifica le applicazioni e gli utenti di Twitter che utilizzano OAuth.

Cos'è OAuth?

Secondo oauth.net, OAuth è:

Un protocollo aperto per consentire l'autorizzazione sicura in un metodo semplice e standard da applicazioni web, mobili e desktop.

OAuth è il framework di autorizzazione più comune oggi e viene utilizzato sulla maggior parte delle applicazioni e dei servizi Web più comuni, come GitHub, Google, Facebook e, ovviamente, Twitter.

Questo framework consente agli utenti di concedere l'autorizzazione ad agire per loro conto senza condividere la password dell'account. Dopo che l'utente ha dato il permesso, OAuth ti restituirà un token. Questo token concede l'accesso per effettuare richieste per conto dell'utente.

I token di Twitter non hanno una scadenza, ma possono diventare non validi dopo che l'utente ha rifiutato l'applicazione. Inoltre, l'equipaggio di Twitter può sospendere l'applicazione se si superano i limiti o si eseguono altre azioni che violano i Termini dell'API. È possibile rivedere questi termini per saperne di più su violazioni specifiche.

Crea la tua applicazione

Come primo passo, abbiamo bisogno di creare una nuova applicazione Twitter. Creiamo una nuova applicazione nella pagina di gestione dell'applicazione.

Dopo aver effettuato l'accesso, è necessario fare clic su Crea una nuova app pulsante e compilare il modulo con i dettagli dell'applicazione: nome, descrizione, sito Web e URL di richiamata.

Qual è l'URL di richiamata? Quando gli utenti accettano la nostra applicazione per utilizzare il proprio account, il browser li consegnerà a questo URL con il verificatore OAuth in GET. E useremo questo verificatore per ottenere il token di accesso dell'utente.

Avviso: Non dimenticare di sostituire il sito Web e l'URL di richiamata con il tuo dominio pubblico quando condividi la tua applicazione con utenti reali.

Dopo aver compilato il modulo, puoi firmare il Contratto per gli sviluppatori e fare clic su Sottoscrivi pulsante per creare la tua applicazione.

Congratulazioni! Ora hai accesso a una pagina in cui puoi visualizzare i dettagli e modificare le impostazioni della tua nuova applicazione, modificare le autorizzazioni e gestire le chiavi e accedere ai token. Vai a Chiavi e token di accesso scheda e trova il Chiave del consumatore e Segreto dei consumatoriLi useremo a breve.

Inizia la codifica

Scegliere una libreria

Prima di iniziare a scrivere codice, dobbiamo scegliere una libreria che funzioni con le API di Twitter e Oauth 2.0. È possibile ottenere una panoramica delle librerie esistenti nella pagina degli sviluppatori di Twitter. In questo tutorial userò TwitterOAuth come il più popolare e facile da usare. Possiamo installarlo dalla riga di comando con Composer:

il compositore richiede abraham / twitteroauth

Il file di configurazione

Creiamo un nuovo file chiamato config.php per memorizzare tutti i dati statici. Specificare i seguenti dettagli nell'applicazione.

 'EPKXCv3tUsq9DoxwZy616Cy1o', 'consumer_secret' => 'UXnAeXkCZFIOnLVQCS4LFR7GsCTrOiU77OGSFL3dUoYZiTxU8x', // 'url_login' => 'http: //localhost/twitter_login.php', 'url_callback' => 'http: //localhost/twitter_callback.php',] ;

Avvia lo script di accesso

Ora crea un nuovo file denominato twitter_login.php e includi Autoload di Composer, libreria di TwitterOAuth, avvia la sessione e importa le impostazioni della nostra applicazione dal file di configurazione.

Richiedi l'autenticazione

In questa parte dobbiamo richiedere all'utente di autorizzare la nostra applicazione. Per raggiungere questo obiettivo creeremo un oggetto della classe TwitterOAuth, richiederemo un token dell'applicazione dall'API di Twitter, ottenere l'URL della pagina di autorizzazione utilizzando questo token e reindirizzare l'utente a questa pagina.

// crea l'oggetto TwitterOAuth $ twitteroauth = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret']); // richiesta token dell'applicazione $ request_token = $ twitteroauth-> oauth ('oauth / request_token', ['oauth_callback' => $ config ['url_callback']]); // genera un'eccezione se qualcosa è andato storto se ($ twitteroauth-> getLastHttpCode ()! = 200) lancia nuova \ Eccezione ('Si è verificato un problema durante l'esecuzione di questa richiesta');  // salva il token dell'applicazione alla sessione $ _SESSION ['oauth_token'] = $ request_token ['oauth_token']; $ _SESSION ['oauth_token_secret'] = $ request_token ['oauth_token_secret']; // genera l'URL per fare richiesta per autorizzare la nostra applicazione $ url = $ twitteroauth-> url ('oauth / authorize', ['oauth_token' => $ request_token ['oauth_token']]); // e reindirizza l'intestazione ('Posizione:'. $ url);

Prendi nota del fatto che stiamo salvando i token dell'applicazione nella sessione, poiché ne avremo bisogno nel passaggio successivo.

Ora puoi eseguire questo script nel browser e, se tutto va bene, verrai reindirizzato alla pagina dell'API di Twitter con qualcosa del genere:

Verrai reindirizzato all'URL di richiamata facendo clic su Autorizza app pulsante. Ma non così in fretta, prima dobbiamo creare uno script di callback.

Ottieni il token utente

Il nostro prossimo passo è creare uno script di callback. Creiamo un nuovo file chiamato twitter_callback.php e includere la libreria di TwitterOAuth, il file di configurazione e avviare la sessione come abbiamo fatto nella parte precedente.

Quindi verificheremo se abbiamo ricevuto un parametro auth verificatore dall'API di Twitter. Se manca qualcosa, reindirizzeremo l'utente per accedere nuovamente.

$ oauth_verifier = filter_input (INPUT_GET, 'oauth_verifier'); if (vuoto ($ oauth_verifier) ​​|| vuoto ($ _ SESSION ['oauth_token']) || vuoto ($ _ SESSION ['oauth_token_secret'])) // manca qualcosa, vai e accedi nuovamente header ('Posizione:'. $ config [ 'url_login']); 

Il passaggio successivo consiste nel connettersi all'API di Twitter con il token dell'applicazione e richiedere un token utente utilizzando il verificatore OAuth:

// connettersi con il token dell'applicazione $ connection = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret'], $ _SESSION ['oauth_token'], $ _SESSION ['oauth_token_secret']); // richiesta token utente $ token = $ connection-> oauth ('oauth / access_token', ['oauth_verifier' => $ oauth_verifier]);

E ora hai il token utente memorizzato nel $ Token variabile.

Come usare questo token

Possiamo utilizzare questo token per agire a nome dell'account dell'utente. Possiamo memorizzarlo nella sessione o salvarlo nel database per gestire l'account utente la prossima volta senza richiedere il permesso. Per connettersi all'API di Twitter con il token utente, devi solo eseguire questa operazione:

$ twitter = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret'], $ token ['oauth_token'], $ token ['oauth_token_secret']);

Crea un Tweet di prova

Per creare un nuovo tweet dall'account dell'utente, dobbiamo aggiungere solo una piccola porzione di codice:

$ status = $ twitter-> post ("statuses / update", ["status" => "Grazie @nedavayruby, ora so come autenticare gli utenti con Twitter grazie a questo tutorial https://goo.gl/N2Znbb" ]); echo ('Creato nuovo stato con #'. $ status-> id. PHP_EOL);

Inoltre è possibile ottenere i dettagli dello stato dalla risposta dell'API memorizzata in $ stato variabile.

Finalmente, siamo pronti a testare la nostra sceneggiatura. 

Conclusione

Come puoi vedere, la creazione di un'applicazione Twitter non è così difficile. Ora hai tutte le funzionalità API da utilizzare: puoi creare nuovi tweet, caricare media, gestire amicizie e così via.

Tieni presente che ora puoi raccogliere i token OAuth e hai il grande potere di agire per conto dei tuoi utenti. Ma con un grande potere derivano grandi responsabilità, ecco perché è necessario gestire questa situazione con garbo e offrire un'esperienza utente di qualità.

Se hai domande o feedback, sentiti libero di pubblicarli nella sezione commenti. Non vedo l'ora e proverò a rispondere a ciascuno dei tuoi commenti.

Ulteriori letture e collegamenti correlati

Nota che ho preparato un intero progetto per questo tutorial su GitHub, e puoi dare un'occhiata a questo con un link sul lato destro del sito o usando questo link.

  • App di Twitter
  • API REST di Twitter
  • Panoramica di Twitter OAuth
  • Libreria PHP di TwitterOAuth
  • Altre librerie di Twitter
  • Homepage OAuth
  • L'articolo originale su Come autenticare gli utenti con Twitter OAuth.