Как установить заголовок авторизации с помощью curl
Как передать заголовок авторизации с помощью cURL? (исполняемый файл в /usr/bin/curl
).
8 ответов:
http://curl.haxx.se/docs/httpscripting.html
см. раздел 6. Проверка подлинности http
проверка подлинности http
http аутентификация-это возможность сообщить серверу свое имя пользователя и пароль, чтобы он мог проверить, что вам разрешено выполнять запрос, который вы делающий. Обычная проверка подлинности, используемая в HTTP (который является типом curl использует по умолчанию)простыетекст, что означает, что он отправляет имя пользователя и пароль только слегка запутанный, но все еще полностью читаемый любым, кто нюхает сеть между вами и удаленным сервером.
чтобы сказать curl использовать пользователя и пароль для аутентификации:
curl --user name:password http://www.example.com
для сайта может потребоваться другой метод аутентификации (проверьте заголовки возвращается сервером), а потом-и NTLM, --дайджест --переговоры или даже -- anyauth может быть варианты, которые подходят вам.
Иногда ваш HTTP-доступ доступен только через использование HTTP полномочие. Это, кажется, особенно распространено в различных компаниях. Прокси HTTP может потребоваться свой собственный пользователь и пароль, чтобы позволить клиенту получить доступ к интернет. Чтобы указать те, с завитком, запустите что-то вроде:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
Если ваш прокси-сервер требует проверки подлинности, чтобы быть сделано с помощью метода проверки подлинности NTLM, --использовать прокси-сервер по протоколу NTLM, если это требуется переварить использовать-прокси-дайджест.
Если вы используете любой из этих параметров user + password, но не указываете пароль часть curl будет запрашивать пароль в интерактивном режиме.
обратите внимание, что при запуске программы ее параметры могут быть видны при перечислении запущенных процессов системы. Таким образом, другие пользователи могут быть возможность смотреть ваши пароли, если вы передаете их в виде простой командной строки опции. Есть способы обойти это.
стоит отметить, что пока это так HTTP Аутентификация работает, очень многие веб-сайты не будут использовать эту концепцию, когда они дают логины и т. д. Видеть более подробная информация об этом приведена в разделе веб-входа ниже.
просто добавляя, чтобы вам не пришлось нажимать:
curl --user name:password http://www.example.com
или если вы пытаетесь сделать отправить аутентификацию для OAuth 2:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
жетоны на предъявителя выглядят так:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" 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_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.
Если у вас нет токена в момент вызова, вам придется сделать два вызова, один для получения токена, а другой для извлечения токена из ответа, обратите внимание на
греп маркер | вырезать -д-Ф1 | вырезать -д\" -Ф4
как это часть, которая имеет дело с извлечением токенов из ответа.
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