Как установить заголовок авторизации с помощью curl

Как передать заголовок авторизации с помощью cURL? (исполняемый файл в /usr/bin/curl ).

http://curl.haxx.se/docs/httpscripting.html

См. Часть 6. HTTP-аутентификация

Аутентификация HTTP

HTTP-аутентификация – это возможность указать серверу имя пользователя и пароль, чтобы он мог убедиться, что вам разрешено выполнять запрос, который вы делаете. Обычная аутентификация, используемая в HTTP (которая используется по умолчанию для curl), основана на использовании обычного текста , что означает, что он отправляет имя пользователя и пароль только слегка запутанным, но все еще полностью читаемым любым, кто нюхает в сети между вами и удаленным сервером.

Чтобы сказать curl, чтобы использовать пользователя и пароль для аутентификации:

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

Для этого сайта может потребоваться другой метод проверки подлинности (проверьте заголовки, возвращаемые сервером), а затем –ntlm, –digest, –negotiate или even –anyauth – варианты, которые вам подходят.

Иногда ваш HTTP-доступ доступен только с использованием прокси-сервера HTTP. Это особенно характерно для разных компаний. Для прокси-сервера HTTP может потребоваться собственный пользователь и пароль, чтобы клиент мог пройти через Интернет. Чтобы указать те, у кого есть curl, выполните что-то вроде:

 curl --proxy-user proxyuser:proxypassword curl.haxx.se 

Если ваш прокси-сервер требует, чтобы аутентификация выполнялась с использованием метода NTLM, используйте -proxy-ntlm, если он требует использования дайджеста -proxy-digest.

Если вы используете любой из этих параметров пользователя + пароль, но не учитываете часть пароля, curl подскажет пароль в интерактивном режиме.

Обратите внимание, что при запуске программы его параметры можно увидеть при перечислении запущенных процессов в системе. Таким образом, другие пользователи могут просматривать ваши пароли, если вы передадите их как простые параметры командной строки. Есть способы обойти это.

Стоит отметить, что, хотя так работает HTTP-аутентификация, очень многие веб-сайты не используют эту концепцию, когда они предоставляют логины и т. Д. Более подробную информацию об этом см. В главе «Вход в Интернет».

Просто добавив, что вам не нужно переходить по клику:

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

или если вы пытаетесь отправить аутентификацию для OAuth 2:

 curl -H "Authorization: OAuth " http://www.example.com 

icons-носители выглядят следующим образом:

 curl -H "Authorization: Bearer " http://www.example.com 

(для тех, кто ищет 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 xxxxxxxxxxxxxx" https://www.example.com/ 

Будьте осторожны, когда вы используете: curl -H "Authorization: token_str" http://www.example.com

token_str и Authorization должны быть разделены пробелом, иначе серверная сторона не получит среду HTTP_AUTHORIZATION .

Для HTTP Basic Auth:

curl -H "Authorization: Basic <_your_token_>" http://www.example.com

замените _your_token_ и URL.

Если у вас нет маркера во время вызова, вам нужно будет сделать два звонка, один для получения токена, а другой – для извлечения лексема из ответа, обратите внимание на

маркер grep | cut -d, -f1 | cut -d \ “-f4

так как это часть, которая занимается извлечением маркера из ответа.

 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() 

После извлечения токена вы можете использовать токен для последующих вызовов следующим образом.

 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 
Давайте будем гением компьютера.