1 min read

OAuth + Twitter API + ACCESS_TOKEN_SECRET

Uno dei problemi dell'internet attuale è che un utente scrive/utilizza/partecipa su tanti siti/servizi ma non è in grado di far interagire i vari fornitori tra loro (a meno di non ricaricare i dati).
Se più o meno tutti (i geek) sanno cos'è OpenID, ovvero uno standard per autenticare gli utenti su internet, di meno si conosce OAuth, ovvero uno standard usato da Google, Yahoo, Twitter,.. per autorizzare a terzi l'accesso ai nostri dati su un determinato servizio.
Immaginate di accedere a un sito che si occupa di stampe di foto, autorizzarlo ad accedere alle vostre foto su Flickr, selezionare quelle che vi interessano e farvele stampare. Sarà a cura dei 2 siti gestire la transazione senza farvi fare a voi nuovamente l'upload.

Il bello degli standard è che ognuno li implementa un po' come vuole, ma tra i problemi di sicurezza di OAuth 1.0 e il diffondersi di Facebook (Facebook Connect), adesso sembra che OAuth 1.0a sia qui per restare ed essere utilizzato al meglio da tutti.

Come funziona il Workflow

Trovate tutto qui, ma un grafico è molto meglio per iniziare. In poche parole l'utente accede a un sito consumer, l'utente viene reinderizzato al sito provider (quello che ha effettivamente i dati) per autorizzare la connessione provider-consumer, dopodichè l'utente è in grado a gestire i propri dati dal sito consumer.

Esempio Pratico, leggere e scrivere su Twitter

In questo esempio si usa OAuth Ruby e una coppia di chiavi CONSUMER_KEYCONSUMER_SECRET che potete richiedere su Twitter. Come risultato potete accedere ai vostri dati e postare un twit direttamente dalla console senza andare sul sito web.

PS: Il sistema di verifica a PIN (auth_verifier) è un'alternativa al callback_url per ottenere access_token e access_token_secret. Un'alternativa è usare xAuth ma dovete farvelo abilitare via email(!) e non è usato da tutti i provider