Przejdź do głównej zawartości

57. OAuth 2.0 — przepływ autoryzacji, tokeny i kiedy używać

OAuth 2.0

OAuth 2.0 to standard autoryzacji pozwalający aplikacjom trzecim na dostęp do zasobów użytkownika bez ujawniania hasła. „Zaloguj się przez Google/GitHub/Facebook” — to OAuth 2.0. Standard definiuje cztery przepływy (grant types) dostosowane do różnych scenariuszy.

  • „Logowanie przez Google” jest na każdej nowoczesnej stronie
  • Większość publicznych API wymaga OAuth 2.0 (GitHub, Twitter, Spotify)
  • JWT (JSON Web Tokens) jest używany jako format tokenu dostępu
  1. Wyjaśnić problem bez OAuth — dlaczego nie oddajemy hasła aplikacjom
  2. Opisać aktorów: właściciel zasobu, klient, serwer autoryzacji, serwer zasobu
  3. Omówić Authorization Code Grant (najczęstszy przepływ)
  4. Opisać tokeny: access token, refresh token, scope
  1. Problem — aplikacja trzecia potrzebuje dostępu do danych użytkownika
  2. Czterech aktorów OAuth 2.0
  3. Authorization Code Grant — krok po kroku
  4. Implicit Grant, Client Credentials Grant, Resource Owner Password
  5. Access Token — format, ważność, Bearer w nagłówku
  6. Refresh Token — odnawianie tokenu bez ponownego logowania
  7. Scope — ograniczanie uprawnień (read:user, repo, email)

Przykład 1

Diagram przepływu Authorization Code Grant

Przykład 2

PHP: wywołanie API z tokenem Bearer w nagłówku

Przykład 3

Przykładowy access token JWT (zdekodowany payload)
  1. Wstęp — problem oddawania hasła
  2. Czterech aktorów OAuth 2.0
  3. Authorization Code Grant — diagram
  4. Typy tokenów
  5. Scope i uprawnienia
  6. Pozostałe grant types
  7. Użycie w PHP (przykład z curl)
  8. Podsumowanie i bibliografia

Przetestuj na GitHubie!

Utwórz aplikację OAuth w ustawieniach GitHub Developer i opisz cały proces rejestracji i przepływu. To praktyczny kontekst dla teorii.