Аутентификация пользователя через WP-API V2 в Postman

9 мар. 2016 г., 21:10:26
Просмотры: 15K
Голосов: 2

Я использую Postman для тестирования своего проекта и wp-api. В частности, POST-запросы, где пользователь должен быть аутентифицирован для выполнения действий. Вот что я использую для создания пользователя:

{{url}}/projectname/wp-json/wp/v2/users/?username=anewname&email=ben@scientifik.com&password=passwordhere

Однако при тестировании операций, требующих аутентификации, таких как создание пользователя, я получаю ошибку 401:

{
  "code": "rest_cannot_create_user",
  "message": "Извините, у вас нет прав на создание ресурса.",
  "data": {
    "status": 401
  }
}

Аутентификация через Nonce: Если посмотреть на документацию по ссылке выше, там объясняется установка заголовка и отправка nonce. Я могу установить заголовок X-WP-Nonce, но как получить сам nonce для отправки в Postman?

Аутентификация через cookies: Я установил interceptor Postman для перехвата cookies и вижу 5 cookies, но всё равно получаю ошибку 401 при использовании метода выше.

Любые идеи или рекомендации будут очень полезны сообществу.

5
Комментарии

Возможно, вопрос в том, что именно вы тестируете. Nonce и куки подразумевают фронтенд, и зачем вам открывать какой-либо "записывающий" API для фронтенда? Кстати, я совсем не знаком с этим API, но nonce, вероятно, должен сопровождаться куками, а не заменять их, если только одна из кук не служит в качестве nonce.

Mark Kaplun Mark Kaplun
9 мар. 2016 г. 21:54:39

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

cybmeta cybmeta
9 мар. 2016 г. 22:06:06

@cybmeta значит, вы говорите, что невозможно использовать Postman и WP-API для выполнения POST-запросов из-за nonce. Верно?

Ben Racicot Ben Racicot
10 мар. 2016 г. 17:04:07

Вам необходимо отправить действительный аутентификационный cookie и действительный nonce. Но cookies действительны только в рамках одного домена. Я не знаю, можно ли обойти это требование с помощью Postman. Способ аутентификации между доменами — это метод OAuth, который, я уверен, можно использовать с Postman. Если вы хотите использовать Postman только для тестирования во время разработки, вы также можете использовать Basic Authorization. Всё это объясняется, другими словами, в ссылке, которую вы привели в вопросе: http://v2.wp-api.org/guide/authentication/

cybmeta cybmeta
10 мар. 2016 г. 21:20:46

На самом деле в документации это объяснено довольно плохо. Документация по этому проекту всегда отставала от разработки. :/

MTT MTT
13 мая 2016 г. 20:07:28
Все ответы на вопрос 2
0

Postman использует общие куки с Chrome. Если вы авторизованы на своем сайте, вы можете получить неожиданные результаты.

Ссылка: https://wordpress.org/support/topic/wp-api-cant-create-a-post/

3 дек. 2016 г. 09:50:44
1

Postman не требует nonce для создания контента с версией v2 beta 12... просто используйте плагин WP-API Basic Auth. Единственный необходимый заголовок - это заголовок авторизации.

Скриншот интерфейса Postman

17 мая 2016 г. 00:52:15
Комментарии

Это хорошо, но не имеет значения для фронтенд-разработки, особенно на сайтах без HTTPS. Вы просто не будете отправлять пароль в открытом виде, а nonce обязателен для авторизованных пользователей.

Mark Kaplun Mark Kaplun
5 мар. 2018 г. 05:34:11