GNU/Linux >> Znalost Linux >  >> Linux

CURL pro přístup na stránku, která vyžaduje přihlášení z jiné stránky

Možná se také budete chtít přihlásit přes prohlížeč a získat příkaz se všemi záhlavími včetně souborů cookie:

Otevřete kartu Síť v Nástrojích pro vývojáře, přihlaste se, přejděte na požadovanou stránku a použijte „Kopírovat jako cURL“.


Web pravděpodobně používá soubory cookie k ukládání informací o vaší relaci. Když běžíte

curl --user user:pass https://xyz.example/a  #works ok
curl https://xyz.example/b #doesn't work

curl probíhá dvakrát, ve dvou samostatných relacích. Když se tedy spustí druhý příkaz, soubory cookie nastavené prvním příkazem nejsou dostupné; je to stejné, jako byste se přihlásili na stránku a v jedné relaci prohlížeče a pokusil se o přístup na stránku b v jiném.

Co musíte udělat, je uložit soubory cookie vytvořené prvním příkazem:

curl --user user:pass --cookie-jar ./somefile https://xyz.example/a

a poté je znovu načtěte při spuštění druhého:

curl --cookie ./somefile https://xyz.example/b

Případně můžete zkusit stáhnout oba soubory ve stejném příkazu, který bude podle mého názoru používat stejné soubory cookie.


Po chvíli googlování jsem našel toto:

curl -c cookie.txt -d "LoginName=someuser" -d "password=somepass" https://oursite/a
curl -b cookie.txt https://oursite/b

Nevím, jestli to funguje, ale mohlo by vás to navést správným směrem.


Linux
  1. Jak se install -c liší od cp

  2. Jak zadat přihlašovací údaje pro web z příkazového řádku linuxu

  3. Jaké jsou různé způsoby zobrazení zprávy v bash shellu poté, co se uživatel přihlásí?

  1. mimipenguin – Vypsat přihlašovací hesla od současných uživatelů Linuxu

  2. Jak rozlišit vstup z různých klávesnic?

  3. jak se liší cp -f od cp --remove-destination?

  1. Proč je úroveň Nice ignorována? (mezi různými relacemi přihlášení – respektováno, pokud je zahájeno ze stejné relace.)?

  2. Kontrola stavu webové stránky pomocí Curl?

  3. Jak používat Sftp v systému, který vyžaduje Sudo pro root přístup a ověřování pomocí klíče Ssh?