Intereting Posts
Сообщения в нескольких категориях разные single.php поместить данные wp_query в таблицу html Как создать шаблон архива для настраиваемого типа сообщения Настройка административных панелей редактирования и позиций метабокса и видимость для всех пользователей и администраторов TinyMCE – нет автоматического форматирования с использованием the_editor ()? Штрих-коды, созданные на основе пользовательской информации ввода Показать все сообщения в категории. get_post_meta не работает внутри короткого кода Как изменить расположение меню Показать / скрыть кнопку в толстых боксах в зависимости от того, с какой страницы она открывается сделать выдержку из данных из мета-поля? Попытка получить свойство не-объекта «wordpress» Состояние сообщения не обновляется до «будущего» каждый раз? Как отслеживать логины пользователей? WordPress JSON API Расширение для создания пользователей

Подпись OAuth не соответствует

Я использую ниже в своем wordpress для разработки приложения на основе oauth.

WP-API (плагин генерации api)

WP API OAuth1 (сервер oauth) и

WP API client- cli (oauth клиентская библиотека)

на приведенном ниже url для wp client-cli https://man-sudarshann-1.c9.io/api/

Я получаю эту ошибку. Подпись OAuth не соответствует, когда я нажимаю кнопку AUTH для аутентификации запроса. Я пробовал все исправления для этого через Интернет. но никто не помог

подпись, сгенерированная и отправленная от клиента api, – 3ko8DUsUUEB4Hqaks68vGYnTjQM =

сигнатура, сгенерированная на стороне сервера, составляет 5rPsul6zplhfNvb4o + Mz11O / OyI =

поэтому приведенный ниже код не работает

if ( ! hash_equals( $signature, $consumer_signature ) ) { return new WP_Error( 'json_oauth1_signature_mismatch', __( 'OAuth signature does not match' ), array( 'status' => 401 ) ); } 

Я предполагаю, что консоль API генерирует неправильную подпись. Пожалуйста, помогите мне в решении этой проблемы.

Solutions Collecting From Web of "Подпись OAuth не соответствует"

Я столкнулся с подобной проблемой при попытке использовать Client-CLI с плагином OAuth 1.0a, однако я нашел решение здесь в официальном репозитории.

В файле lib/class-wp-json-authentication-oauth1.php в строке 524 измените следующий код:

 $base_request_uri = rawurlencode( get_home_url( null, parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ), 'http' ) ); 

чтобы:

 $home_url_path = parse_url(get_home_url (null,'','http'), PHP_URL_PATH ); $request_uri_path = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); if (substr($request_uri_path, 0, strlen($home_url_path)) == $home_url_path) { $request_uri_path = substr($request_uri_path, strlen($home_url_path)); } $base_request_uri = rawurlencode( get_home_url( null, $request_uri_path, 'http' ) ); 

Это должно решить проблему, с которой вы столкнулись.

Убедитесь, что запрос подписи обработан правильно: http://oauth1.wp-api.org/docs/basics/Signing.html

Если вы используете POSTMAN, вы можете установить его в OAuth 1.0 в разделе «Авторизация», а затем выбрать параметры

  • Добавить пустые параметры в подпись
  • Кодировать подпись OAuth
  • Сохранять данные помощника для запроса

проверьте пересылку базыров. В моем случае не-www был отправлен на www. После обновления baseurl до формата http://www.example.com это сработало для меня.

В Postman под авторизацией попробуйте отменить « Добавить параметры в заголовок ».