Добавить куки в WordPress WP-JSON API-вызов - PullRequest
0 голосов
/ 16 сентября 2018

Я разрабатываю приложение для iPhone, которое использует сайт Wordpress в качестве бэкэнда. Я также внес изменения в сайт и создал базовые конечные точки для обслуживания приложения с помощью API Wordpress wp-json restful. Я установил плагины JSON API, JSON API Auth и JSON API User и поддерживаю аутентификацию пользователей. Мне удается войти в систему пользователя и получить при этом токен сеанса, cookie. Как выполнить аутентификацию последующих вызовов, то есть как добавить файл cookie в качестве обязательного параметра в существующую конечную точку?

Например, у меня есть этот код, который получает последнее меню за неделю:

function get_latest_menu ( $params ){
            $post = get_posts( array(
              'category'      => 69,
                'posts_per_page'  => 1,
                'offset'      => 0
          ) );

            if( empty( $post ) ){
                return null;
            }

            return $post[0]->post_content;
         }

         // Register the rest route here.

         add_action( 'rest_api_init', function () {

                 register_rest_route( 'weeks-menu/v1', 'latest-menu',array(

                     'methods'  => 'GET',
                     'callback' => 'get_latest_menu'

                 ) );

          } );

Где и как мне добавить параметр cookie в вызов, чтобы он стал аутентифицированным? Пожалуйста, укажите конкретный код, если это возможно.

Это может показаться довольно простым, но у меня нет настоящих знаний php / Wordpress. ни время, чтобы приобрести его. Спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Не уверен, насколько это поможет после свершившегося факта, но недавно в школе я столкнулся с подобной проблемой при разработке мобильного приложения с использованием Ionic. Вещи, которые я должен был сделать:

  1. Включить заголовки аутентификации в файле HTAccess для WordPress (обычно это происходит с ошибкой, если вы этого не делаете, документы для JWT объясняют, что именно нужно добавить, и это сработало для меня).

  2. Я использовал post man для проверки, но первое, что вы делаете, это получаете токен для имени пользователя / пароля.

  3. При каждом последующем вызове вы добавляете флаг авторизации в заголовок в форме Authorization: Bearer <token>, где указан ваш токен для пользователя. У меня был пакет с Ionic, который может вывести токен из моего хранилища, который работал каждый раз, когда я звонил.

Кроме того, вы можете добавить новую проверку, чтобы проверить, является ли токен действительным, но есть несколько плагинов, которые принудительно аутентифицируют любую конечную точку покоя, что приводит к отправке неавторизованного флага, который вы можете проверить в своем коде.

Моя рекомендация, если вам все еще неясно скачать и использовать почтальон и использовать его, чтобы проверить, все ли настроено правильно. Как только вы это разберетесь, все остальное станет более понятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...