✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Отправка заголовков авторизации с помощью WordPress

56

Всякий раз, когда мы делаем удаленные запросы с помощью WordPress, мы, вероятно, будем использовать одну из следующих функций:

И да, иногда мы будем использовать cURL в зависимости от характера проекта, но это выходит за рамки содержания этого поста.

Отправка заголовков авторизации с помощью WordPress

В этой статье я хочу поговорить конкретно об удаленных запросах и указании заголовков для стороннего API.

Заголовки авторизации с WordPress

Всякий раз, когда дело доходит до асинхронных запросов к WordPress, процесс часто выглядит следующим образом:

  1. Настройте функцию JavaScript для выполнения вызова на стороне сервера (конечно, с защищенным одноразовым номером ),
  2. Попросите сервер выполнить запрос, используя одну из вышеупомянутых функций,
  3. Верните ответ либо в виде сообщения об успехе, либо в виде сообщения об ошибке ,
  4. Пусть клиентский JavaScript обрабатывает ответ любым способом, который кажется подходящим на основе ответа.

Но что, если запрос API, который вам нужно сделать с сервера, требует чего-то большего, чем базовая конечная точка с несколькими параметрами?

В частности, что, если то, что вы пишете, требует от вас предоставления какого-либо разрешения на вашу работу? К счастью, WordPress позволяет нам устанавливать заголовки, которые решают именно эту проблему.

Если вы хотите реализовать что-то подобное, то я предполагаю, что тип контента будет типом JSON, а авторизация будет представлять собой некоторый тип токена (однако ваша реализация может отличаться в зависимости от системы, с которой вы работаете). работающий).

В этом случае мой токен будет просто идентифицирован как $token. А вот простой пример:

<?php

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

Кое-что, что стоит отметить

Если ваш хост работает на Apache и этот тип запроса не работает, вам, вероятно, потребуется обновить htaccessфайл, чтобы он включал следующее правило: SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1.

Спасибо Джорджу за то, что подсадил меня на это.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее