keywords - Cómo configurar el encabezado de autorización utilizando curl
meta name description content (8)
¿Cómo paso el encabezado de autorización usando cURL? (ejecutable en /usr/bin/curl
).
(para aquellos que buscan respuesta 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);
Esto funcionó para mí:
curl -H "Authorization: Token xxxxxxxxxxxxxx" https://www.example.com/
Las fichas de portador se ven así:
curl -H "Authorization: Bearer <ACCESS_TOKEN>" http://www.example.com
Para la autenticación HTTP básica:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
Reemplace _your_token_
y la URL.
Si no tiene el token al momento de realizar la llamada, tendrá que hacer dos llamadas, una para obtener el token y la otra para extraer el token de la respuesta, preste atención a
grep token | corte -d, -f1 | cortar -d / "-f4
ya que es la parte que trata de extraer el token de la respuesta.
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()
Después de extraer el token, puede usarlo para hacer las siguientes llamadas de la siguiente manera.
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
Simplemente agregue para que no tenga que hacer clic:
curl --user name:password http://www.example.com
o si está intentando enviar autenticación para OAuth 2:
curl -H "Authorization: OAuth <ACCESS_TOKEN>" http://www.example.com
Tenga cuidado de que cuando utilice: curl -H "Authorization: token_str" http://www.example.com
token_str
y la Authorization
deben estar separados por espacios en blanco, de lo contrario el lado del servidor no obtendrá el entorno HTTP_AUTHORIZATION
.
http://curl.haxx.se/docs/httpscripting.html
Ver parte 6. Autenticación HTTP
Autenticación HTTP
La autenticación HTTP es la capacidad de decirle al servidor su nombre de usuario y contraseña para que pueda verificar que tiene permiso para hacer la solicitud que está haciendo. La autenticación básica utilizada en HTTP (que es el tipo de enrollamiento de tipo que se usa de forma predeterminada) se basa en texto simple , lo que significa que envía el nombre de usuario y la contraseña solo ligeramente ofuscados, pero aún así es completamente legible por cualquier persona que se encuentre en la red entre usted y el servidor remoto.
Para decirle a curl que use un usuario y una contraseña para la autenticación:
curl --user name:password http://www.example.com
Es posible que el sitio requiera un método de autenticación diferente (verifique los encabezados devueltos por el servidor), y luego --ntlm, --digest, --negotiate o incluso --anyauth pueden ser opciones que le convengan.
A veces, su acceso HTTP solo está disponible mediante el uso de un proxy HTTP. Esto parece ser especialmente común en varias empresas. Un proxy HTTP puede requerir su propio usuario y contraseña para permitir que el cliente se conecte a Internet. Para especificar aquellos con curl, ejecute algo como:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
Si su proxy requiere que la autenticación se realice mediante el método NTLM, use --proxy-ntlm, si requiere el uso de Digest --proxy-digest.
Si utiliza cualquiera de estas opciones de usuario + contraseña pero deja de lado la parte de la contraseña, curl solicitará la contraseña de forma interactiva.
Tenga en cuenta que cuando se ejecuta un programa, es posible ver sus parámetros al enumerar los procesos en ejecución del sistema. Por lo tanto, otros usuarios pueden ver sus contraseñas si las pasa como opciones de línea de comandos. Hay maneras de evitar esto.
Vale la pena señalar que, si bien es así como funciona la autenticación HTTP, muchos sitios web no utilizarán este concepto cuando proporcionan inicios de sesión, etc. Consulte el capítulo de inicio de sesión web más adelante para obtener más detalles al respecto.