Tengo 2 páginas: xyz.com/a
y xyz.com/b
. Solo puedo acceder xyz.com/b
si y solo si inicio sesión xyz.com/a
primero. Si accedo xyz.com/b
sin pasar por el otro, simplemente se me niega el acceso (sin redirección para iniciar sesión) a través del navegador. Una vez que inicie sesión en xyz.com/a
, puedo acceder al otro.
Mi problema es hacer esto usando el comando curl. Puedo iniciar sesión correctamente para xyz.com/a
usar curl, pero luego lo intento xyx.com/b
y se me niega el acceso.
Yo uso lo siguiente:
curl --user user:pass https://xyz.com/a #works ok
curl https://xyz.com/b #doesn't work
Intenté usar la segunda línea con y sin la parte de usuario / contraseña y todavía no funciona. Ambas páginas usan la misma CA, por lo que eso no es un problema. ¿Alguna sugerencia? Gracias
somefile
contiene el parámetro de ruta (/a
en este caso) y no se reenvía a la segunda llamada. Si edito la cookie en el archivo y solo pongo una barra, funciona (la cookie se reenvía a la segunda llamada). ¿Sabe si es posible evitar el almacenamiento de la ruta en el archivo de cookies?También es posible que desee iniciar sesión a través del navegador y obtener el comando con todos los encabezados, incluidas las cookies:
Abra la pestaña Red de Herramientas para desarrolladores, inicie sesión, navegue a la página necesaria, use "Copiar como cURL".
fuente
Después de buscar en Google encontré esto:
No tengo idea de si funciona, pero podría llevarlo en la dirección correcta.
fuente
Mi respuesta es una modificación de algunas respuestas anteriores de @JoeMills y @user.
Obtenga un
cURL
comando para iniciar sesión en el servidor:Modifique el comando cURL para poder guardar la cookie de sesión después de iniciar sesión
-H 'Cookie: <somestuff>'
curl
al principio-c login_cookie.txt
'login_cookie.txt'
en la misma carpetaLlame a una nueva página web utilizando esta nueva cookie que requiere que inicie sesión
curl -b login_cookie.txt <url_that_requires_log_in>
He probado esto en Ubuntu 20.04 y funciona como un encanto.
fuente