Qual è lo scopo di un token API e un segreto API?

7

Quindi, se un utente si autentica sul sito utilizzando un nome utente / pw, ottiene un token di sessione che viene passato di nuovo al server per convalidare chi sono.

Tuttavia, quando usi un'API come Twitter o 4square, hai sia un token che un segreto. Quale valore extra c'è nell'aggiungere un api segreto al token API, specialmente se vuoi inviarli entrambi nell'URL.

L'unica cosa plausibile che sono riuscito a creare è che lo spazio dei numeri è DAVVERO grande, ma un token a 128 bit ha già uno spazio di numerazione ENORME, quindi è logico credere che probabilmente non è il motivo per il valore extra. / p>

Quindi perché avere 2 valori, che vengono entrambi trasmessi in ogni richiesta?

    
posta boatcoder 09.02.2016 - 22:49
fonte

1 risposta

3

Questa affermazione non è corretta:

both of which are transmitted in each request

Il segreto non viene mai inviato. Invece, ogni richiesta è firmata con il segreto. Dalla documentazione dell'API di Twitter , i dati inviati sono nell'intestazione Authorization :

OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", 
    oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg", 
    oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D", 
    oauth_signature_method="HMAC-SHA1", 
    oauth_timestamp="1318622958", 
    oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb", 
    oauth_version="1.0"

La documentazione continua a dire:

The oauth_signature parameter contains a value which is generated by running all of the other request parameters and two secret values through a signing algorithm. The purpose of the signature is so that Twitter can verify that the request has not been modified in transit, verify the application sending the request, and verify that the application has authorization to interact with the user’s account.

Come afferma la documentazione, la firma viene utilizzata per l'autenticazione e per garantire che la richiesta non venga alterata dopo che è stata firmata.

Un altro vantaggio di questa strategia di autenticazione è che interagisce bene con i servizi stateless .

    
risposta data 10.02.2016 - 00:08
fonte

Leggi altre domande sui tag