如何在WooCommerce中对自定义API端点进行身份验证

时间:2019-12-21 作者:Surjan Raghuwanshi

我已经创建了自定义API,它工作正常,但我无法对其进行身份验证,它返回的结果没有检查密钥

我已经从管理员创建了使用者密钥和密钥。

如何验证对API的请求。

我尝试了一种解决方案,效果如预期,但我的问题是,

认证自定义API的标准方式是什么

my current solution

require_once \'/woocommerce/includes/legacy/api/v1/class-wc-api-authentication.php\';
$test = new WC_API_Authentication();
$user = wp_get_current_user();
$test->authenticate($user);

1 个回复
SO网友:Will Craig

最近在使用API时,我发现以使用者密钥为用户名、使用者密码为密码的身份验证标头是否存在且有效,这将当前用户全局设置为匹配的用户。

我发现core执行REST路由,直到调用current\\u user\\u can,此时如果标头丢失或无效,则当前用户ID为0,并且作为“current user cant”,这会阻止进一步处理请求。

看看您的解决方案,不需要定义$user,因为WC\\u API\\u Authentication::authenticate()方法未使用它。

如果这修复了您的代码,则表明您尚未注册REST路由(/wp-json/wc/v1/my-route),并且已经自己定义了请求的自定义处理。

您可能希望查看“woocommerce\\u api\\u endpoints”过滤器。