J'ai 2 pages: xyz.com/a
et xyz.com/b
. Je ne peux accéder que xyz.com/b
si et seulement si je me connecte d' xyz.com/a
abord. Si j'accède xyz.com/b
sans passer par l'autre, j'obtiens simplement l'accès refusé (pas de redirection vers la connexion) via le navigateur. Une fois connecté xyz.com/a
, je peux accéder à l'autre.
Mon problème est de faire cela en utilisant la commande curl. Je peux me connecter avec succès à l' xyz.com/a
aide de curl, mais ensuite essayer xyx.com/b
et j'obtiens l'accès refusé.
J'utilise ce qui suit:
curl --user user:pass https://xyz.com/a #works ok
curl https://xyz.com/b #doesn't work
J'ai essayé d'utiliser la deuxième ligne avec et sans la partie utilisateur / mot de passe et ne fonctionne toujours pas. Les deux pages utilisent la même autorité de certification, ce n'est donc pas un problème. Aucune suggestion? Merci
somefile
contient le paramètre de chemin (/a
dans ce cas) et il n'est pas transmis au deuxième appel. Si je modifie le cookie dans le fichier et que je mets une barre oblique uniquement, cela fonctionne (cookie transféré au deuxième appel). Savez-vous s'il est possible d'empêcher le stockage du chemin dans le fichier cookie?Vous pouvez également vous connecter via le navigateur et obtenir la commande avec tous les en-têtes, y compris les cookies:
Ouvrez l'onglet Réseau des outils de développement, connectez-vous, accédez à la page souhaitée, utilisez "Copier en tant que cURL".
la source
Après quelques recherches sur Google, j'ai trouvé ceci:
Aucune idée si cela fonctionne, mais cela pourrait vous conduire dans la bonne direction.
la source
Ma réponse est un mod de quelques réponses antérieures de @JoeMills et @user.
Obtenez une
cURL
commande pour vous connecter au serveur:Modifiez la commande cURL pour pouvoir enregistrer le cookie de session après la connexion
-H 'Cookie: <somestuff>'
curl
au début-c login_cookie.txt
'login_cookie.txt'
dans le même dossierAppelez une nouvelle page Web en utilisant ce nouveau cookie qui nécessite que vous soyez connecté
curl -b login_cookie.txt <url_that_requires_log_in>
J'ai essayé cela sur Ubuntu 20.04 et cela fonctionne à merveille.
la source