Jak przekazać nagłówek autoryzacji za pomocą cURL? (wykonywalny w /usr/bin/curl
).
źródło
Jak przekazać nagłówek autoryzacji za pomocą cURL? (wykonywalny w /usr/bin/curl
).
http://curl.haxx.se/docs/httpscripting.html
Patrz część 6. Uwierzytelnianie HTTP
Uwierzytelnianie HTTP
Uwierzytelnianie HTTP to możliwość podania serwerowi nazwy użytkownika i hasła, aby mógł zweryfikować, czy masz możliwość wykonania żądanego żądania. Podstawowe uwierzytelnianie używane w HTTP (domyślnie jest to typ curl) jest oparte na zwykłym tekście , co oznacza, że wysyła nazwę użytkownika i hasło tylko nieznacznie zaciemnione, ale nadal w pełni czytelne dla każdego, kto wącha sieć między tobą a serwerem zdalnym.
Aby powiedzieć curlowi, aby używał użytkownika i hasła do uwierzytelnienia:
curl --user name:password http://www.example.com
Witryna może wymagać innej metody uwierzytelniania (sprawdź nagłówki zwrócone przez serwer), a następnie --ntlm, --digest, --negotiate lub nawet - dowolne opcje mogą być odpowiednie dla Ciebie.
Czasami dostęp do HTTP jest dostępny tylko za pośrednictwem serwera proxy HTTP. Wydaje się to szczególnie powszechne w różnych firmach. Serwer proxy HTTP może wymagać własnego użytkownika i hasła, aby umożliwić klientowi dostęp do Internetu. Aby określić te z zawijaniem, uruchom coś takiego:
curl --proxy-user proxyuser:proxypassword curl.haxx.se
Jeśli twój serwer proxy wymaga uwierzytelnienia przy użyciu metody NTLM, użyj --proxy-ntlm, jeśli wymaga użycia Digest --proxy-digest.
Jeśli użyjesz jednej z tych opcji + hasło użytkownika, ale pominiesz część hasła, curl poprosi o hasło interaktywnie.
Należy pamiętać, że po uruchomieniu programu jego parametry mogą być widoczne podczas wyświetlania listy uruchomionych procesów systemu. Dlatego inni użytkownicy mogą oglądać Twoje hasła, jeśli podasz je jako zwykłe opcje wiersza poleceń. Istnieją sposoby na obejście tego.
Warto zauważyć, że chociaż w ten sposób działa uwierzytelnianie HTTP, bardzo wiele stron internetowych nie będzie używać tej koncepcji, gdy zapewniają loginy itp. Więcej informacji na ten temat znajduje się w rozdziale Logowanie do Internetu.
Po prostu dodajesz, abyś nie musiał klikać:
lub jeśli próbujesz wykonać uwierzytelnianie wysyłania dla OAuth 2:
źródło
-H
Opcja jest wielki.-H Authorization: Basic <Base64EncodedCredentials>
HMAC-SHA256
zawsze pojawia się błąd braku nagłówka autoryzacji<Base64EncodedCredentials>
, jak wspomniano przez @ tymotki-kansaki można uzyskać poświadczeń kodowane za pomocą polecenia:cred="$( echo $NAME:$PASSWORD | base64 )"; curl -H "Authorization: Basic $cred" https://example.com
. W celach informacyjnych patrz stackoverflow.com/questions/16918602/…Tokeny na okaziciela wyglądają tak:
źródło
(dla tych, którzy szukają odpowiedzi php-curl )
źródło
To działało dla mnie:
źródło
Authorization: bearer xxxxxxxxx
?Bearer
Bearer
.W przypadku uwierzytelniania podstawowego HTTP:
curl -H "Authorization: Basic <_your_token_>" http://www.example.com
zamień
_your_token_
i adres URL.źródło
echo -ne "<your-user>:<your-pass>" | base64 --wrap 0
wygeneruje podstawowy token uwierzytelnienia.-H "Authorization: Basic <_your_token_>"
działa tak samo jak--user login:password
. Możesz to sprawdzić za pomocącurl -v
Uważaj, aby podczas korzystania z:
curl -H "Authorization: token_str" http://www.example.com
token_str
iAuthorization
muszą być oddzielone spacją, w przeciwnym razie po stronie serwera nie można uzyskaćHTTP_AUTHORIZATION
środowiska.źródło
Jeśli nie masz tokena w momencie wykonywania połączenia, będziesz musiał wykonać dwa połączenia, jedno, aby uzyskać token, a drugie, aby wyodrębnić token z odpowiedzi, zwróć uwagę na
ponieważ jest to część zajmująca się wydobywaniem tokena z odpowiedzi.
Po wyodrębnieniu tokena można go używać do wykonywania kolejnych połączeń w następujący sposób.
źródło