Błąd 401 Unauthorized: strona prosi o zalogowanie

Żądanie dotarło do strony, ale strona nie przyjęła Twoich danych logowania albo w ogóle ich nie otrzymała. Login i hasło do proxy nie mają tu znaczenia.

Zaktualizowano · Redakcja Prokso

W skrócie
  • Kod 401 wysyła strona: proxy Cię przepuściło, ale dane logowania do strony nie pasowały
  • Najczęściej wygasł termin ważności tokena lub sesji
  • Upewnij się, że kod to 401, a nie 407, i uzyskaj nowy token

Co oznacza błąd

Kod 401 oznacza, że dostęp do zasobu wymaga uwierzytelnienia, a w żądaniu brak ważnych danych uwierzytelniających. Zgodnie ze standardem HTTP (RFC 9110) serwer wysyła razem z 401 nagłówek WWW-Authenticate, w którym wskazuje, jak należy się uwierzytelnić.

Najważniejsze, by nie pomylić 401 z 407. Kod 407 wysyła proxy, gdy nie przyjęło loginu i hasła do proxy, i dołącza do niego nagłówek Proxy-Authenticate. Kod 401 wysyła strona: proxy już Cię przepuściło, a żądanie dotarło do adresata.

Kto zwraca błąd: 407 - proxy, 401 i 403 - sama stronaTwój programProxygw.prokso.comStrona407 - odpowiada proxy: login, hasło lub pozostały transfer401 / 403 - odpowiada strona: logowanie lub dostęp
Kto zwraca błąd: 407 - proxy, 401 i 403 - sama strona

Przyczyny

  • Wygasł token lub sesja. Tokeny dostępu działają przez ograniczony czas; potem strona lub API odpowiada 401.
  • Klucz API nie został przekazany lub trafił w złe miejsce. Klucz jest w niewłaściwym nagłówku, z błędem w nazwie lub ze zbędną spacją.
  • Nagłówek Authorization zgubił się przy przekierowaniu. Niektóre biblioteki usuwają go, gdy przekierowanie prowadzi do innej domeny. Tak robi na przykład Python requests.
  • Dane proxy wpisano w miejsce danych strony. Login i hasło do proxy trafiły do Authorization zamiast do ustawień proxy.
  • Strona zresetowała sesję po zmianie adresu. Część stron prosi o ponowne zalogowanie, gdy żądania jednej sesji przychodzą z różnych IP.

Jak to naprawić

  1. Sprawdź, kto odpowiedział: jeśli kod to 407, chodzi o dane proxy – zobacz stronę o błędzie 407. Jeśli 401, szukaj przyczyny w danych logowania do strony.
  2. Uzyskaj nowy token lub zaloguj się ponownie na konto w serwisie.
  3. Porównaj nazwę nagłówka i format klucza z dokumentacją API, z którego korzystasz.
  4. Trzymaj dane proxy w ustawieniach proxy programu, a dane strony – w nagłówkach żądania. Przykład prawidłowego podziału znajdziesz w instrukcji Python requests.
  5. Jeśli strona wiąże sesję z adresem, pracuj w ramach jednej sesji ze stałym IP: porty 10000–20000 utrzymują jeden IP od 1 do 120 minut.

Jak sprawdzić, czy działa

Wykonaj to samo żądanie bez proxy, z tymi samymi danymi logowania. Jeśli bez proxy też jest 401, problem leży w tokenie lub kluczu. Jeśli bez proxy wszystko działa, porównaj nagłówki obu żądań i sprawdź, czy IP nie zmienił się w trakcie sesji.

Diagnoza w 2 minuty

Najpierw wklej linię do sprawdzania proxy. Jeśli tam proxy działa, przyczyna leży w programie lub jego ustawieniach. Jeśli nie - sprawdź linię z terminala:

curl -v -x "http://LOGIN:HASŁO@gw.prokso.com:823" https://api.ipify.org
  • Wiersz < HTTP/1.1 407 zaraz po CONNECT oznacza, że odpowiada proxy. Nazwa po kodzie, na przykład NO_USER, wskazuje przyczynę.
  • Proxy odpowiedziało na CONNECT kodem 200, a potem przyszedł inny kod - proxy działa, tę odpowiedź dała strona.
  • Brak odpowiedzi, tylko przekroczony czas - połączenie nie dotarło do proxy: sprawdź host, port i sieć.

Pytania i odpowiedzi (FAQ)

Czym 401 różni się od 403?

401 oznacza „nie jesteś uwierzytelniony”: strona nie wie, kim jesteś. 403 oznacza „wiem, kim jesteś, ale dostęp jest zabroniony”. O błędzie 403 przez proxy – na <a href="/pl/errors/403-forbidden">osobnej stronie</a>.

Czy proxy może zwrócić 401?

Na błędy logowania proxy odpowiada kodem 407. Dlatego 401 przez proxy prawie zawsze wysyła sama strona lub jej API.

Dlaczego po zmianie IP strona znowu prosi o zalogowanie?

Część stron uznaje zmianę adresu za znak innego urządzenia i resetuje sesję. Do takiej pracy używaj stałego IP i ustaw czas trwania sesji wystarczający dla Twojego zadania.

Rezydencjalne $1.59, mobilne $2.50, serwerowe $0.65 za 1 GB

Rejestracja w minutę, dostęp od razu po płatności.

Utwórz konto