+48 506 130 673 [email protected]

Zabezpieczenie sklepu internetowego opartego na WooCommerce jest kluczowym elementem ochrony danych klientów i transakcji. Dwie popularne metody uwierzytelniania to OAuth 2.0 i JWT (JSON Web Token). W tym artykule omówimy, jak wdrożyć te mechanizmy w WooCommerce w celu zabezpieczenia API i integracji z innymi aplikacjami.


1. OAuth 2.0 – wprowadzenie i implementacja

1.1 Czym jest OAuth 2.0?

OAuth 2.0 to otwarty standard autoryzacji, który umożliwia aplikacjom dostęp do zasobów użytkownika bez udostępniania hasła. W WooCommerce może być stosowany do ochrony API REST i umożliwienia bezpiecznej komunikacji z innymi aplikacjami.

1.2 Sklep internetowy – Instalacja i konfiguracja OAuth 2.0

  1. Zainstaluj wtyczkę OAuth 2.0 dla WooCommerce, np. WP OAuth Server.
  2. Aktywuj wtyczkę i przejdź do konfiguracji w sekcji OAuth Server w panelu WordPress.
  3. Zarejestruj aplikację kliencką, podając:
    • Nazwę aplikacji
    • Adres URL przekierowania (redirect URI)
    • Zakresy dostępu do zasobów
  4. Wygeneruj klucz klienta i sekret.
  5. Skonfiguruj endpointy OAuth 2.0, np.:
    • https://twojsklep.pl/oauth/authorize
    • https://twojsklep.pl/oauth/token
    • https://twojsklep.pl/oauth/resource

1.3 Proces autoryzacji OAuth 2.0

  1. Użytkownik wysyła żądanie autoryzacji do authorize endpointa.
  2. Serwer OAuth wyświetla ekran logowania użytkownika.
  3. Po autoryzacji serwer zwraca kod autoryzacyjny do aplikacji klienckiej.
  4. Aplikacja wymienia kod autoryzacyjny na token dostępu na endpoint token.
  5. Token dostępu jest używany do autoryzacji API WooCommerce.

1.4 Korzystanie z OAuth 2.0 w WooCommerce API

Aby uzyskać dostęp do zasobów WooCommerce, klient powinien wysłać żądanie HTTP z tokenem autoryzacyjnym w nagłówku:

GET /wp-json/wc/v3/orders
Authorization: Bearer {token}

2. JWT (JSON Web Token) – wprowadzenie i implementacja

2.1 Czym jest JWT?

JWT to lekki i bezpieczny sposób przekazywania informacji między stronami jako JSON zaszyfrowany przy użyciu klucza prywatnego. W WooCommerce może być wykorzystywany do uwierzytelniania użytkowników i zabezpieczenia API.

2.2 Instalacja i konfiguracja JWT

  1. Zainstaluj wtyczkę JWT Authentication for WP REST API:
    wp plugin install jwt-authentication-for-wp-rest-api --activate
  2. Dodaj konfigurację do wp-config.php:
    define('JWT_AUTH_SECRET_KEY', 'twoj_tajny_klucz');
    define('JWT_AUTH_CORS_ENABLE', true);
  3. Dodaj reguły do .htaccess (dla Apache):
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

    Lub dla Nginx:

    fastcgi_param HTTP_AUTHORIZATION $http_authorization;
  4. Zrestartuj serwer i upewnij się, że zmiany zostały zastosowane.

2.3 Proces uwierzytelniania JWT

  1. Użytkownik wysyła dane logowania na endpoint wp-json/jwt-auth/v1/token:
    POST /wp-json/jwt-auth/v1/token
    Content-Type: application/json
    
    {
       "username": "admin",
       "password": "haslo"
    }
  2. Serwer zwraca token JWT:
    {
       "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIs...",
       "user_email": "[email protected]",
       "user_nicename": "admin",
       "user_display_name": "Administrator"
    }
  3. Użytkownik używa tokena JWT w nagłówku podczas żądań API:
    GET /wp-json/wc/v3/orders
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIs...

2.4 Odświeżanie i unieważnianie tokenów

Aby unieważnić token JWT, można ustawić jego krótszy czas życia i wymusić ponowne logowanie.


3. OAuth 2.0 vs. JWT – Które rozwiązanie wybrać?

CechaOAuth 2.0JWT
BezpieczeństwoWysokie, wymaga autoryzacji serweraDobre, ale wymaga zabezpieczenia klucza
WydajnośćMoże wymagać dodatkowych żądańBardzo szybkie
Wsparcie dla APIREST API, aplikacje mobilneREST API, aplikacje mobilne
SkalowalnośćWymaga przechowywania tokenówSamodzielnie kodowany

Rekomendacja:

  • OAuth 2.0 jest najlepszy dla aplikacji wymagających wysokiego poziomu bezpieczeństwa i kontroli nad sesjami.
  • JWT jest lepszy dla aplikacji wymagających szybkiej autoryzacji i mniejszego obciążenia serwera.

Podsumowanie

Zabezpieczenie WooCommerce poprzez OAuth 2.0 lub JWT pozwala na bezpieczne uwierzytelnianie użytkowników i ochronę API. Wybór odpowiedniej metody zależy od wymagań projektu – jeśli zależy Ci na skalowalności i szybkości, warto rozważyć JWT, natomiast jeśli kluczowe są kontrola dostępu i autoryzacja użytkowników, lepszym rozwiązaniem będzie OAuth 2.0.

Dzięki tym mechanizmom Twój sklep WooCommerce będzie bardziej odporny na nieautoryzowane żądania i ataki.