通过WP REST API

时间:2016-04-13 09:38:00

标签: ios wordpress api rest jwt

我正在开发一个将WP REST API与JWT连接起来的iOS应用程序。 API和JWT插件(WP-API的JWT身份验证)工作正常。

应用程序登录基于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
  }
}

这不仅发生在app中,也发生在邮递员身上。 总之,我只能通过WP REST API和使用JWT插件更改一次用户密码。

如果我在应用程序中更改密码然后通过Postman更改密码,则可以从应用程序更新密码,但同样只能更新一次。 (即使有相同的标记)

生成新令牌不起作用,重新启动应用程序允许(使用新令牌)再次更改通行证。

1 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题。更改用户密码后,您的HTTP客户端会保留身份验证Cookie。这意味着wordpress_logged_in cookie仍然引用用户的旧密码,收到401错误。 通过API更改用户密码后,只需清除客户端的Cookie即可。首先在Postman上按照以下步骤进行测试:

  1. 发出API请求,正常更改用户密码。
  2. 制作另一个API请求,更改用户的密码或其详细信息。请注意,将出现401错误。
  3. 在“请求”屏幕中,单击管理Cookie
  4. 在Cookie列表中,选择您的wordpress网站,然后删除wordpress_logged_in Cookie。
  5. 在第2项上重复API请求。