Autoryzacja w REST API

Założenie: Przedstawimy podstawowe techniki autoryzacji w REST API, aby zabezpieczyć nasze endpointy przed nieautoryzowanym dostępem.

Krok po kroku:

  1. Użycie klucza API: Najprostsza metoda. Każdy klient otrzymuje unikalny klucz, który musi dołączyć do żądania (np. w nagłówku `X-API-Key`).
  2. 
    // Kod po stronie klienta (np. w JavaScript)
    const apiKey = 'YOUR_API_KEY';
    fetch('/api/data', {
      headers: {
        'X-API-Key': apiKey
      }
    });
    
    // Kod po stronie serwera (PHP)
    $apiKey = $_SERVER['HTTP_X_API_KEY'];
    if ($apiKey !== 'YOUR_API_KEY') {
      http_response_code(401); // Unauthorized
      exit;
    }
    // ... dalsza część kodu ...
    				

    Ten fragment kodu pokazuje, jak klient wysyła klucz API w nagłówku żądania, a serwer PHP go weryfikuje. Jeśli klucz jest nieprawidłowy, zwracany jest kod statusu 401 (Unauthorized).

  3. Autoryzacja za pomocą tokenów JWT (JSON Web Token): Bardziej zaawansowana metoda, oferująca lepsze bezpieczeństwo. Po pomyślnej uwierzytelnieniu serwer generuje token JWT, który klient używa w kolejnych żądaniach.
  4. 
    // Przykładowy kod (uproszczony) - wymaga biblioteki do obsługi JWT
    // ... generowanie tokenu JWT ...
    $token = generateJWT($userId, $userRoles);
    // ... wysyłanie tokenu w nagłówku Authorization ...
    
    // Weryfikacja tokenu na serwerze
    $token = $_SERVER['HTTP_AUTHORIZATION'];
    if (!verifyJWT($token)) {
      http_response_code(401);
      exit;
    }
    				

    Ten fragment pokazuje, że JWT jest generowany i weryfikowany. Biblioteki takie jak `firebase/php-jwt` ułatwiają pracę z JWT.

Ten przykład pokazuje podstawowe techniki autoryzacji w REST API. Istnieje wiele innych metod, takich jak OAuth 2.0, które zapewniają jeszcze wyższy poziom bezpieczeństwa. Zachęcamy do dalszego zgłębiania tematu!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *