我可以同时使用WooCommerce消费者密钥和JWT进行身份验证吗?

时间:2017-10-24 作者:lofidevops

我想对两者进行身份验证:

我已经安装了WooCommerce消费者密钥,用于系统查询和JSON Web令牌(JWT),用于用户查询JWT Authentication for WP REST API. 但激活插件后,以前的工作查询(使用WooCommerce消费者密钥进行身份验证)会因以下原因而失败:

{\'code\': \'jwt_auth_bad_auth_header\',
 \'data\': {\'status\': 403},
 \'message\': \'Authorization header malformed.\'}
如何配置Wordpress/JWT插件以使其成功?

2 个回复
最合适的回答,由SO网友:lofidevops 整理而成

是的,这可以通过适当地组织您的请求来实现。

对于系统请求,请使用OAuth 1.0(与以前一样的使用者密钥),但对其进行编码,使其在URL中而不是在标头中包含OAuth凭据。在中具有OAuth凭据Authorisation header触发JWT错误。

GET https://DOMAIN/wp-json/wc/v1/subscriptions
* Authorization: `OAuth 1.0`
  * Consumer key: FILLED IN
  * Consumer secret: FILLED IN
  * Other fields: blank
* Headers: blank
* Body: blank
要请求令牌(对于基于用户的查询),您不使用授权,而是在正文中包含用户凭据:

POST https://DOMAIN/wp-json/jwt-auth/v1/token
* Authorization: `No Auth`
* Headers: blank
* Body: `form-data`
  * key: username, value: test
  * key: password, value: test
获得令牌后,可以将其添加到Authentication 符合JWT要求的收割台。

要测试这些查询,最简单的方法是使用专用工具,如httpiePostman.

Reference: https://github.com/Tmeister/wp-api-jwt-auth/issues/87

SO网友:Joydeb Chouhdhury

我也面临同样的问题。wp api和woocommerce api的Jwt身份验证不与in一起工作ionic3 和woocommerce。我已经解决了这个问题,并做了以下工作

转到->plugins/jwt-authentication-for-wp-rest-api/includes/class-jwt-auth.php

搜索函数define\\u public\\u hooks(),并注释最后两行

private function define_public_hooks()
{
    $plugin_public = new Jwt_Auth_Public($this->get_plugin_name(), $this->get_version());
    $this->loader->add_action(\'rest_api_init\', $plugin_public, \'add_api_routes\');
    $this->loader->add_filter(\'rest_api_init\', $plugin_public, \'add_cors_support\');
    //$this->loader->add_filter(\'determine_current_user\', $plugin_public, \'determine_current_user\', 10);
    //$this->loader->add_filter( \'rest_pre_dispatch\', $plugin_public, \'rest_pre_dispatch\', 10, 2 );
}
谢谢,祝你愉快。

结束

相关推荐

Authentication/API Questions

我们正在尝试使用S2Member来管理我们的WP站点和我们正在启动的Flash程序的成员资格。我们希望在用户登录并保持登录状态时使用S2Member对其进行身份验证。问题:Java层需要知道哪个用户登录到Wordpress(如果有的话),以便它可以将正确的数据返回到flash层。建议的解决方案:Wordpress的cookie也应该包含在Flash到Java的请求中。Java可以使用这些cookie来查询Wordpress DB以获取用户ID。我们需要知道的是:1。是否可以从数据库或文件系统获取带有coo