2016-04-13 3 views
1

Я разрабатываю приложение iOS, которое соединяет WP REST API с JWT. API и JWT-плагин (JWT-аутентификация для WP-API) работают нормально.Обновление пароля пользователя с помощью WP REST API

Вход для входа в систему основан на Wordpress пользователя и пароля, и вы можете изменить свой пароль пользователя. После обновления пароля пользователя (/wp-json/wp/v2/users/id?password=newpass) API перестает работать. Я не могу продолжать делать какие-либо обновления вызова (обновление, удаление, изменение пароля еще раз ...) и ответ всегда:

{ 
    "code": "rest_cannot_edit", 
    "message": "Sorry, you are not allowed to edit users.", 
    "data": { 
    "status": 401 
    } 
} 

Это происходит не только в приложении, но с помощью почтальона тоже. Таким образом, я могу только изменить пароль пользователя через WP REST API и использовать JWT-плагин.

Если я изменяю пароль в приложении, а затем меняю его через Postman, пароль можно обновить из приложения, но опять же, только один раз. (даже с тем же знаком)

Сгенерировать новый токен не работает, перезапуск приложения позволяет (с новым токеном) сменить проход снова.

+0

Вы пробовали что-нибудь в коде? –

+0

Я вас не понимаю, извините. У меня есть приложение, которое быстро выполняет всю работу. Приложение получает информацию через WP REST API и работает нормально. Проблема в том, что когда я меняю пароль через API, после этого момента все вызовы API перестают работать. –

+0

Вы проверяете код при обновлении пароля –

ответ

1

Я испытал ту же проблему, что и вы. После изменения пароля пользователя ваш HTTP-клиент сохраняет с ним старый файл cookie. То есть wordpress_logged_in cookie все еще ссылается на старый пароль пользователя, получая ошибку 401. После изменения пароля пользователя через API просто очистите файлы cookie своего клиента. Сначала проверьте это на Postman, выполнив следующие шаги:

  1. Сделать запрос API, который обычно меняет пароль пользователя.
  2. Сделайте другой запрос API, изменив пароль пользователя или его данные. Обратите внимание, что появится ошибка 401.
  3. На экране «Запрос» нажмите Управление файлами cookie.
  4. В списке файлов cookie выберите ваш сайт Wordpress и удалите файл cookie wordpress_logged_in.
  5. Повторите запрос API на товар 2.