Ich habe 2 Seiten: xyz.com/a
Und xyz.com/b
. Ich kann nur dann auf xyz.com/b
Zugreifen, wenn ich mich zuerst bei xyz.com/a
Anmelde. Wenn ich auf xyz.com/b
Zugreife, ohne den anderen zu durchlaufen, wird mir der Zugriff einfach über den Browser verweigert (keine Umleitung zum Login). Sobald ich mich unter xyz.com/a
Angemeldet habe, kann ich auf die andere zugreifen.
Mein Problem macht dies mit dem Befehl curl. Ich kann mich mit curl erfolgreich bei xyz.com/a
Anmelden, versuche dann aber xyx.com/b
Und bekomme keinen Zugriff.
Ich benutze folgendes:
curl --user user:pass https://xyz.com/a #works ok
curl https://xyz.com/b #doesn't work
Ich habe versucht, die zweite Zeile mit und ohne den Benutzer-/Kennwortteil zu verwenden, und es funktioniert immer noch nicht. Beide Seiten verwenden dieselbe Zertifizierungsstelle, daher ist dies kein Problem. Irgendwelche Vorschläge? Vielen Dank
Die Website verwendet wahrscheinlich Cookies , um Ihre Sitzungsinformationen zu speichern. Wenn du rennst
curl --user user:pass https://xyz.com/a #works ok
curl https://xyz.com/b #doesn't work
curl
wird zweimal in zwei separaten Sitzungen ausgeführt. Wenn der zweite Befehl ausgeführt wird, sind die vom ersten Befehl gesetzten Cookies nicht verfügbar. Es ist so, als ob Sie sich in einer Browsersitzung bei Seite a
angemeldet und versucht hätten, in einer anderen auf Seite b
zuzugreifen.
Was Sie tun müssen, ist , die mit dem ersten Befehl erstellten Cookies zu speichern :
curl --user user:pass --cookie-jar ./somefile https://xyz.com/a
und lesen Sie sie dann wieder ein, wenn Sie die zweite ausführen:
curl --cookie ./somefile https://xyz.com/b
Alternativ können Sie versuchen, beide Dateien mit demselben Befehl herunterzuladen. Ich denke, dass dabei dieselben Cookies verwendet werden.
Sie können sich auch über einen Browser anmelden und den Befehl mit allen Kopfzeilen einschließlich Cookies abrufen:
Öffnen Sie die Registerkarte Netzwerk der Entwicklertools, melden Sie sich an, navigieren Sie zur gewünschten Seite und verwenden Sie "Als cURL kopieren".
Nach einigem googeln habe ich folgendes gefunden:
curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
curl -b cookie.txt https://oursite/b
Keine Ahnung, ob es funktioniert, aber es könnte Sie in die richtige Richtung führen.