← strona głównaProgramowanie (Програмування)

Czym różni się OAuth 1 od OAuth 2

OAuth 1 OAuth 1 został opracowany na początku lat 2000 jako sposób bezpiecznego dostępu aplikacji zewnętrznych do zasobów użytkownika bez przekazywania hasła. Główna idea polegała na tym, że zewnętrzna usługa mogła wy...

Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.

OAuth 1

OAuth 1 został opracowany na początku lat 2000 jako sposób bezpiecznego dostępu aplikacji zewnętrznych do zasobów użytkownika bez przekazywania hasła. Główna idea polegała na tym, że zewnętrzna usługa mogła wysyłać zapytania w imieniu użytkownika, ale każde zapytanie było podpisywane kryptograficznie, aby zapewnić, że nie zostało zmienione i pochodzi od autoryzowanego klienta.
Cecha OAuth 1:
  • Kryptograficzny podpis każdego zapytania (HMAC-SHA1 lub RSA-SHA1).
  • Używał dwóch typów tokenów: tokena żądania do rozpoczęcia autoryzacji i tokena dostępu do zasobów.
  • Mógł działać nawet bez HTTPS, ponieważ bezpieczeństwo zapewniał podpis zapytania.
  • Był głównie odpowiedni dla aplikacji serwerowych i ograniczonej liczby scenariuszy autoryzacji.
OAuth 1 był aktywnie wykorzystywany w takich usługach jak Twitter API v1 lub starsze wersje LinkedIn, ale z powodu złożoności w realizacji i problemów z podpisami został stopniowo zastąpiony przez OAuth 2.

OAuth 2

OAuth 2 pojawił się w 2012 roku jako uproszczona, bardziej elastyczna i nowoczesna wersja protokołu do autoryzacji i dostępu do zasobów. Jego celem jest uproszczenie pracy programistów, umożliwienie różnym typom klientów (web, aplikacje mobilne, SPA) łatwego dostępu do zasobów użytkownika bez przekazywania hasła.
Cecha OAuth 2:
  • Używa tokenów dostępu (access token) oraz opcjonalnie tokenów odświeżających (refresh token). Token dostępu jest krótkoterminowy, token odświeżający pozwala na przedłużenie sesji.
  • Nie wymaga kryptograficznego podpisu zapytania - bezpieczeństwo zapewnia HTTPS.
  • Obsługuje różne przepływy autoryzacji: kod autoryzacji (dla serwerowych klientów webowych), implicit (dla SPA), hasło (dla zaufanych klientów) oraz dane uwierzytelniające klienta (dla interakcji serwer-serwer).
  • Znacznie łatwiejszy w realizacji i wspierany przez nowoczesne API (Google, Facebook, GitHub, Microsoft, Stripe itp.).
Kiedy co lepiej używać:
  • OAuth 1: jeśli pracujesz z bardzo starymi API, które go wymagają, lub w środowisku bez HTTPS, gdzie ważna jest kryptografia na poziomie zapytania.
  • OAuth 2: dla nowoczesnych aplikacji webowych i mobilnych, SPA, API, gdzie HTTPS jest gwarantowane. Również wygodny dla zewnętrznych klientów, ponieważ wspiera tokeny odświeżające i różne przepływy autoryzacji.

Porównanie OAuth 1 i OAuth 2 w praktyce

  • Składność: OAuth 1 jest bardziej skomplikowany z powodu podpisów, OAuth 2 jest prostszy i bardziej elastyczny.
  • Bezpieczeństwo: OAuth 1 jest bezpieczny nawet bez HTTPS, OAuth 2 wymaga HTTPS.
  • Elastyczność: OAuth 1 jest ograniczony, OAuth 2 wspiera wiele przepływów autoryzacji.
  • Użycie dzisiaj: OAuth 1 jest prawie nieużywany, OAuth 2 to standard dla nowoczesnych API i usług.
OAuth 1 dotyczył bezpiecznej autoryzacji bez HTTPS, OAuth 2 - elastyczności, prostoty i nowoczesnych scenariuszy dla aplikacji webowych i mobilnych.

🔥 Więcej postów

Wszystkie wpisy
Czym jest złożoność faktorialna?
Programowanie (Програмування)16 wrz '25 19:03

Czym jest złożoność faktorialna?

Funkcjonalna złożoność - to sytuacja, gdy liczba wariantów lub kombinacji rośnie jak silnia liczb...

Czym jest NP-trudność?
Programowanie (Програмування)16 wrz '25 19:31

Czym jest NP-trudność?

NP-trudność - to klasa problemów, dla których bardzo trudno znaleźć rozwiązanie, ale łatwo sprawd...

Czym jest ivar w Ruby / Rails?
Programowanie (Програмування)19 paź '25 20:12

Czym jest ivar w Ruby / Rails?

ivar - to skrót od instance variable (zmienna instancji). W Ruby zapisuje się ją z @ przed nazwą,...

Podstawowe metody uwierzytelniania w API
Programowanie (Програмування)19 paź '25 20:26

Podstawowe metody uwierzytelniania w API

Kiedy tworzymy API w Ruby on Rails, ważne jest, aby kontrolować, kto ma dostęp do zasobów. Oto po...

Czym jest ORM i po co jest potrzebny?
Programowanie (Програмування)26 paź '25 14:00

Czym jest ORM i po co jest potrzebny?

Kiedy pracujemy z bazami danych, zazwyczaj musimy pisać zapytania SQL - selekcje, wstawienia, akt...