To nie jest tak naprawdę pytanie, ale przewodnik, jak wysyłać uwierzytelnione żądania do Wordpress API przy użyciu JWT. Piszę to jako przypomnienie dla siebie i dla tych, którzy mogą potrzebować pomocy w tym samym temacie.
rest-api
authentication
grazianodev
źródło
źródło
Odpowiedzi:
Dlaczego uwierzytelnianie JWT
Tworzę witrynę, która używa Wordpress jako zaplecza, a aplikacja React + Redux jako interfejs, więc ściągam całą zawartość z interfejsu, przesyłając żądania do interfejsu API Wordpress. Niektóre żądania (głównie żądania POST) muszą zostać uwierzytelnione, kiedy natrafiłem na JWT.
Czego potrzebujemy
Aby korzystać z uwierzytelniania JWT z Wordpress, najpierw musimy zainstalować wtyczkę JWT Authentication dla WP REST API . Jak wyjaśniono w instrukcjach wtyczki, musimy również zmodyfikować niektóre podstawowe pliki Wordpress. W szczególności:
W pliku .htaccess zawartym w folderze głównym instalacji Wordpress musimy dodać następujące wiersze:
W pliku wp-config.php, również zawartym w folderze głównym instalacji Wordpress, musimy dodać następujące linie:
Testowanie, czy JWT jest dostępny
Aby sprawdzić, czy możemy teraz korzystać z JWT, uruchom Postmana i zgłoś żądanie do domyślnego „indeksu” interfejsu API Wordpress:
Kilka nowych punktów końcowych, takich jak
/jwt-auth/v1
i/jwt-auth/v1/token
powinno być dodanych do interfejsu API. Jeśli możesz je znaleźć w odpowiedzi na powyższe żądanie, oznacza to, że JWT jest już dostępny.Zdobywanie tokena JWT
Pozostańmy na chwilę w Listonoszu i poprośmy o token do interfejsu API Wordpress:
Odpowiedź będzie zawierać token JWT, który jest zaszyfrowanym kluczem, który wygląda mniej więcej tak:
Zgłaszanie uwierzytelnionego wniosku
Spróbujmy zmienić tytuł posta o identyfikatorze 300 jako przykład uwierzytelnionego żądania w JWT.
W programie Listonosz wybierz metodę POST i wpisz następujący punkt końcowy:
Wybierz opcję Brak uwierzytelnienia na karcie Autoryzacja i dodaj następujące elementy na karcie Nagłówki:
Na koniec w zakładce Body wybierz opcje raw i JSON (application / json), a następnie w edytorze tuż pod opcjami wpisz:
Teraz możesz nacisnąć WYŚLIJ. Przejrzyj zakładkę odpowiedzi ze wszystkimi danymi na temat postu, o który poprosiliśmy: wartość klucza tytułu powinna teraz wynosić
YES! Authenticated requests with JWT work
źródło
register_rest_route( 'jwt-auth/v1', 'your_custom_endpoint ...
. Wszystko w / jwt-auth / będzie wymagało autoryzacjiUzupełniając odpowiedź @ grazianodev, otrzymujesz token autoryzacji za pomocą cURL:
Następnie wyślij prośby z nagłówkiem: „Autoryzacja: token na okaziciela $”
Gdzie $ token to token zwrócony przez powyższą funkcję getToken ().
Osobiście używam wtyczki „ Wyłącz interfejs API REST i wymagaj uwierzytelnienia JWT / OAuth ”, aby ograniczyć dostęp do interfejsu API tylko za pomocą powyższego tokena.
źródło