✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Wysyłanie nagłówków autoryzacyjnych za pomocą WordPress

36

Za każdym razem, gdy wysyłamy żądania zdalne za pomocą WordPressa, prawdopodobnie będziemy używać jednej z następujących funkcji:

I tak, czasami będziemy używać cURL w zależności od charakteru projektu, ale to wykracza poza treść tego posta.

Wysyłanie nagłówków autoryzacyjnych za pomocą WordPress

W tym artykule chcę omówić konkretnie tworzenie zdalnych żądań i określanie nagłówków w interfejsie API innej firmy.

Nagłówki autoryzacyjne z WordPress

Za każdym razem, gdy pojawia się asynchroniczne żądanie za pomocą WordPress, proces często przebiega tak:

  1. Skonfiguruj funkcję JavaScript, aby wykonać wywołanie po stronie serwera (oczywiście z bezpiecznym numerem jednorazowym ),
  2. Czy po stronie serwera wykonanie żądania za pomocą jednej z wyżej wymienionych funkcji,
  3. Zwróć odpowiedź w postaci komunikatu o powodzeniu lub błędzie ,
  4. Niech JavaScript po stronie klienta obsłuży odpowiedź w sposób, który wydaje się pasować na podstawie odpowiedzi.

Ale co, jeśli żądanie API, które musisz wykonać z serwera, wymaga czegoś więcej niż podstawowego punktu końcowego z kilkoma parametrami?

A konkretniej, co jeśli to, co piszesz, wymaga, abyś udzielił pewnego rodzaju upoważnienia do swojej pracy? Na szczęście WordPress pozwala nam ustawić nagłówki, które dokładnie to rozwiązują.

Jeśli chcesz zaimplementować coś takiego, to zakładam, że typem treści będzie JSON, a autoryzacja będzie jakimś rodzajem tokena (jednak twoja implementacja może się różnić w zależności od systemu, z którym korzystasz pracujący).

W takim przypadku mój token zostanie po prostu zidentyfikowany jako $token. A oto prosty przykład:

<?php

$response = wp_safe_remote_post(
    $url,
    [
        'headers'     => [
            'Content-Type'  => 'application/json',
            'Authorization' => $token
        ],
        'body'        => wp_json_encode($args),
        'method'      => 'POST',
        'data_format' => 'body',
    ]
);

Coś, na co warto zwrócić uwagę

Jeśli Twój host działa na Apache i tego typu żądanie nie działa, prawdopodobnie będziesz musiał zaktualizować htaccessplik, aby zawierał następującą regułę: SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1.

Rekwizyty dla George’a za to, że mnie z tym związał.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów