引言
我在一个WordPress项目中使用了WooCommerce插件,该插件提供了REST API的功能,要使用该功能一个很重要的部分就是授权机制。其中官方文章中关于关于HTTPS的授权说明如下:
Over HTTPS
You may use HTTP Basic Auth by providing the API Consumer Key as the username and the API Consumer Secret as the password.
因此,我就按照WooCommerce官方Step-by-Step文章创建了Consumer Key和Consumer Secret,然后通过REST API也完成了数据的获取、创建、修改等等。
但是,一个要非常注意的地方就是:WooCommerce生成的Key和Secret是无法再次获取到的,如下图红圈中的内容:
什么意思呢?就是说你要把Consumer Key和Consumer Secret自己记录下来,什么时候你需要的时候自己填入进去,我是不会再提供接口让你获取它们了!!!
WTK!现在我既要记住我在WordPress上的登陆账号密码,还要在记住WooCommerce的REST API的Key和Secret。
那么如何通过登录账号密码授权或者在已经登陆授权的情况下获取到该用户的Key和Secret。
要实现上面的功能需求,那么首要的步骤就是了解WooCommerce是如何产生和保存REST API的Key和Secret的。下面我们就从页面开始入手一层层的深入进去。
页面流程
class-wc-settings-api.php页面
WooCommerce插件的REST API设置界面包括以下三个子部分:
代码文件:woocommerce\includes\admin\settings\class-wc-settings-api.php
/**
* Output the settings
*/
public function output() {
global $current_section;
if ( 'webhooks' == $current_section ) {
WC_Admin_Webhooks::page_output();
} else if ( 'keys' == $current_section ) {
WC_Admin_API_Keys::page_output();
} else {
$settings = $this->get_settings( $current_section );
WC_Admin_Settings::output_fields( $settings );
}
}
- Settings: 对应woocommerce\includes\admin\class-wc-admin-s