OAuth 1a

Il metodo OAuth 1a è consigliabile per i server che non supportano l’HTTPS. Questo perchè i token OAuth 1a non scadono.

OAuth 1a può essere un metodo complicato, dovuto alla necessità di generare una firma per la richiesta. Qualunque problema con la firma renderà invalida la richiesta.

Primo passo – Ottenere un Token di richiesta

Il primo passo consiste nell’ottenere un Token di richiesta che verrà utilizzato per indirizzare l’utente alla pagina di autorizzazione.

Crea un POST per l’endpoint del Token di richiesta /oauth/v1/request_token:

POST /oauth/v1/request_token
AUTHORIZATION:
OAuth oauth_callback=“https%3A%2F%2Fyour-callback-uri.com”,
oauth_consumer_key=“CONSUMER_KEY”,
oauth_nonce=“UNIQUE_STRING”,
oauth_signature=“GENERATED_REQUEST_SIGNATURE”,
oauth_signature_method=“HMAC-SHA1”,
oauth_timestamp=“1318467427”,
oauth_version=“1.0”

(il titolo è stato modificato per leggibilità)

Rivedere la sezione sulla generazione di un titolo di autorizzazione per i dettagli su come generare un titolo OAuth.

La risposta sarà una stringa “query”:

oauth_token=REQUEST_TOKEN&oauth_token_secret=REQUEST_TOKEN_SECRET&oauth_expires_in=3600

Analizza la stringa e usa i parametri nei prossimi passi seguendo le istruzioni.

Sarà importante memorizzare questi dati in uno spazio persistente perché saranno necessari quando si otterrà il Token di accesso.

Notare che il token sarà valido per il numero di secondi specificato in oauth_expires_in.

Secondo passo – Autorizzazione

Adesso bisogna reindirizzare l’utente all’endpoint di autorizzazione oauth/v1/authorize con il Token di richiesta incluso nella query dell’URL.

Se il callback è diverso da quello che è configurato in AltosMail, includilo nell’URL e includilo nella query come: oauth_callback.

/oauth/v1/authorize?oauth_token=REQUEST_TOKEN&oauth_callback=https%3A%2F%2Fyour-callback-uri.com

L’utente effettuerà il login e AltosMail lo reindirizzerà al callback del cliente o al oauth_callback incluso nella query.

Il callback includerà oauth_token e oauth_verifier nell’URL della query.

Confronta oauth_token nella query con quello ottenuto nel secondo passo, per assicurarti che siano uguali e prevenire richieste fasulle.

oauth_verifier dovrà essere incluso nel header generato nel terzo passo.

Terzo passo – Ottenere un Token di accesso

Genera l’header di autorizzazione e fai un POST per accedere all’endpoint del token /oauth/v1/access_token.

Durante la generazione del titolo, il oauth_token_secret ricevuto nel secondo passo dovrà essere utilizzato come TOKEN_SECRET nella chiave composta.

oauth_verifier dal secondo passo dovrà essere parte del header di autorizzazione generato.

POST /oauth/v1/access_token
Authorization:

OAuth oauth_callback=“https%3A%2F%2Fyour-callback-uri.com”,
oauth_consumer_key=“CONSUMER_KEY”,
oauth_nonce=“UNIQUE_STRING”,
oauth_signature=“GENERATED_REQUEST_SIGNATURE”,
oauth_signature_method=“HMAC-SHA1”,
oauth_timestamp=“1318467427”,
oauth_verifier=“OAUTH_VERIFIER_FROM_STEP_TWO”
oauth_version=“1.0”

(il titolo è stato modificato per leggibilità)

Il risultato dovrebbe includere una stringa query con il token di accesso:

oauth_token=ACCESS_TOKEN&oauth_token_secret=ACCESS_TOKEN_SECRET

I token di accesso OAuth 1 di AltosMail non scadono, ma l’utente può annullare la loro validità. Se il token di accesso non è più valido, si verificherà una risposta “401”.

Il oauth_token può essere incluso nel header di autenticazione e il oauth_token_secret dovrebbe essere usato come TOKEN_SECRET nella chiave composta quando si certificano richieste API.