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

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

Ответ 1

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

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

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

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

Сканировать завиток для использования пользователя и пароля для аутентификации:

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

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

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

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

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

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

Ответ 4

(для тех, кто ищет 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);

Ответ 5

Это сработало для меня:

 curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/

Ответ 6

Для HTTP Basic Auth:

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

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

Ответ 7

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

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

Ответ 8

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

grep token | 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