Come impostare l'intestazione di autorizzazione usando curl


Answers

Aggiungendo solo così non devi fare clic-through:

curl --user name:password http://www.example.com

o se stai provando a fare l'autenticazione di invio per OAuth 2:

curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
Question

Come posso passare l'intestazione dell'autorizzazione utilizzando cURL? (eseguibile in /usr/bin/curl ).




Se non si dispone del token al momento della chiamata, sarà necessario effettuare due chiamate, una per ottenere il token e l'altra per estrarre il token dalla risposta, prestare attenzione a

gettone grep | taglia -d, -f1 | taglia -d \ "-f4

in quanto è la parte che si occupa dell'estrazione del token dalla risposta.

echo "Getting token response and extracting token"    
def token = sh (returnStdout: true, script: """
    curl -S -i -k -X POST https://www.example.com/getToken -H \"Content-Type: application/json\" -H \"Accept: application/json\" -d @requestFile.json | grep token | cut -d, -f1 | cut -d\\" -f4
""").split()

Dopo aver estratto il token puoi usare il token per effettuare chiamate successive come segue.

echo "Token : ${token[-1]}"       
echo "Making calls using token..."       
curl -S -i -k  -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer ${token[-1]}" https://www.example.com/api/resources 



(per coloro che cercano una risposta php-curl )

$service_url = 'https://example.com/something/something.json';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "username:password"); //Your credentials goes here
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate

$curl_response = curl_exec($curl);
$response = json_decode($curl_response);
curl_close($curl);

var_dump($response);



curl -H "Authorization: token_str" http://www.example.com attenzione quando usi: curl -H "Authorization: token_str" http://www.example.com

token_str e Authorization devono essere separati da uno spazio bianco, altrimenti il ‚Äč‚Äčlato server non otterrà l'ambiente HTTP_AUTHORIZATION .