Tenho 2 páginas: xyz.com/a
e xyz.com/b
. Eu só posso acessar xyz.com/b
se e somente se eu fizer o login xyz.com/a
primeiro. Se acessar xyz.com/b
sem passar pelo outro, simplesmente consigo acesso negado (sem redirecionamento para login) através do navegador. Depois de fazer o login em xyz.com/a
, posso acessar o outro.
Meu problema é fazer isso usando o comando curl. Posso fazer o login com sucesso xyz.com/a
usando o curl, mas tento xyx.com/b
e consigo o acesso negado.
Eu uso o seguinte:
curl --user user:pass https://xyz.com/a #works ok
curl https://xyz.com/b #doesn't work
Tentei usar a segunda linha com e sem a parte de usuário / senha e ainda não funciona. Ambas as páginas usam o mesmo CA, então isso não é um problema. Alguma sugestão? obrigado
somefile
contém o parâmetro de caminho (/a
neste caso) e não é encaminhado para a segunda chamada. Se eu editar o cookie no arquivo e colocar apenas uma barra, ele funciona (cookie encaminhado para a segunda chamada). Você sabe se é possível impedir o armazenamento do caminho no arquivo de cookie?Além disso, você pode desejar fazer login pelo navegador e obter o comando com todos os cabeçalhos, incluindo cookies:
Abra a guia Rede das Ferramentas de Desenvolvedor, faça o login, navegue até a página necessária, use "Copiar como cURL".
fonte
Depois de pesquisar no Google, encontrei o seguinte:
Não tenho ideia se funciona, mas pode levar você na direção certa.
fonte
Minha resposta é um mod de algumas respostas anteriores de @JoeMills e @user.
Obtenha um
cURL
comando para fazer login no servidor:Modifique o comando cURL para poder salvar o cookie da sessão após o login
-H 'Cookie: <somestuff>'
curl
do início-c login_cookie.txt
'login_cookie.txt'
na mesma pastaChame uma nova página da web usando este novo cookie que requer que você esteja logado
curl -b login_cookie.txt <url_that_requires_log_in>
Eu tentei isso no Ubuntu 20.04 e funciona perfeitamente.
fonte