Я создаю мобильное приложение для сайта WP и пытаюсь получить POST
запросов к WP-API, начиная с пользователей.
Я следую процессу, описанному в нескольких уроках:
- Установить плагин Basic Auth
- В Postman подготовьте запрос к
POST wp-json/wp/v2/users
, заполнив учетные данные для моего администратора, используя Basic Auth, на вкладке аутентификации.
- В тексте укажите имя пользователя, адрес электронной почты и пароль.
(ничего другого, никаких других заголовков или чего-либо еще)
И я получаю 401 ошибку:
{
"code": "rest_cannot_create_user",
"message": "Sorry, you are not allowed to create new users.",
"data": {
"status": 401
}
}
В данном вопросе упоминаются файлы cookie и вход или выход из браузера; Я получаю один и тот же результат независимо от того, вошел ли я в консоль WP Admin в Chrome. Я использую настольный клиент Postman.
(Я собираюсь попытаться выяснить oAuth или JWT, но все еще озадачен, почему этот более простой маршрут не работает!)
UPDATE
Я выполнил эти шаги из руководства OAuth и получил тот же ответ 401 (после попытки запроса DELETE
)
- Установить и активировать плагин OAuth1
- Зарегистрируйте новое приложение, чтобы получить ключ клиента и секрет клиента. (Указание URL обратного вызова в простой файл-заполнитель, который я помещаю на свой сервер)
POST /oauth1/request
с ключом и секретом шага 2 как oauth_consumer_key
и oauth_consumer_secret
(oauth_signature_method
= HMAC-SHA1), передаваемыми в качестве заголовков аутентификации. Получите oauth_token
и oauth_secret
.
- Посетите
http://my-dev-server.com/oauth1/authorize?oauth_token=<token_here>&oauth_token_secret=<secret_here>
в моем браузере, набрав oauth_token
и oauth_secret
с шага 3.
- Перейдя на страницу подключения WP (авторизованную администратором сайта), нажмите «Авторизовать». Получи
verification token
.
POST /oauth1/access
, с oauth_consumer_key
и oauth_consumer_secret
, использованными на шаге 3, и oauth_token
и oauth_secret
, полученными на шаге 3 в качестве заголовков аутентификации, и с проверочный токен из шага 5 как запрос в URL oauth_verifier
(http://my-dev-server/oauth1/access?oauth_verifier=<oauth_verifier_value>
). получить новые oauth_token
и oauth_secret
.
DELETE /wp-json/wp/v2/job-listings/936
(идентификатор только что созданного списка с веб-сайта, который необходимо удалить) с использованием оригинальных oauth_consumer_key
и oauth_consumer_secret
и новых oauth_token
и oauth_secret
(полученных на шаге 6) в качестве заголовков аутентификации.
И тогда я получаю ответ 401. Обратите внимание, конечно, что все промежуточные шаги, кажется, работали правильно. Я никогда не заменял свой обратный вызов заполнителя, но в учебнике об этом ничего не сказано. Но, может быть, это моя проблема?
Также отмечу, что я не настраивал сервер, чтобы выставить размещение API. Насколько я могу судить, ни в одном из этих руководств нет упоминания о какой-либо предварительной работе, подобной этой, поэтому я предположил, что она будет работать из коробки. (кто-то еще разработал сайт WP и выбрал все плагины базы данных и т. д.).