Intereting Posts
Редизайн сайта – новая тема – нужна помощь Как настроить сообщение об ошибке загрузки в WordPress? Как настроить сайт WordPress на сервере до того, как домен будет готов? Тип сообщения => Любая головоломка Пользовательское сообщение при удалении плагина <! – nextpage -> предполагается как строка комментария Добавление Re Captcha на ваш сайт Я не могу отобразить шаблон поиска, созданный из пользовательского типа post Добавить класс в панель администратора WordPress? Функция запуска ПОСЛЕ ИЗМЕНЕНИЙ параметров темы? Как получить администратор сайта по идентификатору блога term_exists возвращает NULL Проблема с http_referrer при обнаружении, откуда происходит сайт, и разрешить, если из разрешенного хоста Как создать альтернативный канал RSS для тегов с настраиваемыми размерами изображений для MailChimp? Как отключить регистрацию пользователя для роли пользователя-пользователя по умолчанию?

Подпись 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 под авторизацией попробуйте отменить « Добавить параметры в заголовок ».