处理 WordPress REST API(WP API) 中的用户认证,发送 POST 请求
文 / @UTHEME
WordPress REST API 插件中的用户认证方式
您好,我是一名小本本,今天给大家介绍一下 WordPress REST API 插件中的用户认证方式。
支持的用户认证方式
WordPress REST API 插件支持三种用户认证方式,分别是 Cookie 认证、oAuth 认证和基本 HTTP 认证。使用 WordPress REST API 获取信息时,一般不需要进行用户认证,直接获取即可。但是,在向 API 发送信息(POST)时,就需要进行用户认证,否则会返回 HTTP 403 未授权错误。
认证的原理是使用 wp_nonces 来确保 POST 请求是合法的站内请求,而不是其他客户端发送的。
首先,通过 wp_create_nonce 自动生成 nonce Cookie 信息
function enqueue_scripts_styles_init() {
wp_enqueue_script('ajax-script', get_stylesheet_directory_uri() . '/js/script.js', array('jquery'), 1.0);
wp_localize_script('ajax-script', 'WP_API_Settings', array(
'root' => esc_url_raw(rest_url()),
'nonce' => wp_create_nonce('wp_rest')
));
}
add_action('init', 'enqueue_scripts_styles_init');
添加 nonce 信息到 POST 请求中
// 添加请求配置
var xhrConfig = function (xhr) {
xhr.setRequestHeader("X-WP-Nonce", WP_API_Settings.nonce);
};
// 模型
var posts_add = {
// 获取数据, 初始化数据
getData: function () {
return {
title: m.prop(""),
content: m.prop(""),
saved: m.prop(false),
error: m.prop("")
}
},
// 设置数据, 保存表单的数据
setData: function (data) {
return m.request({
method: "POST",
url: "/wp-json/wp/v2/posts/",
config: xhrConfig,
data: {
title: data.title(),
content: data.content()
}
})
.then(data.saved.bind(this, true), data.error);
}
};
以上代码是基于 Mathril 的,使用其他前端框架或者在后端发送 POST 请求到 REST 的认证方法是一样的。文中的代码仅供参考。如果您想了解 oAuth 认证和基本 HTTP 认证的方法,可以参考官方文档。如果我有机会测试,也会及时发布文章说明使用方法。

相关文章
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
创建Vue组件详细教程 2023-09-10 00:23:17
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45
-
WordPress 6.3版本(2023年8月)性能提升了哪些? 2023-08-28 16:56:02
-
Astra 主题团队推出人工智能驱动的 WordPress 网站创建平台 – ZIPWP 2023-08-28 16:49:54
-
WordPress 宣布将为用户提供 100 年域名托管服务 2023-08-28 16:45:27
-
PHP判断if else 和 switch case的区别盘点 2023-07-29 15:11:11
-
详解WordPress独立站SEM中的OCPC方法(含百度推广OCPC与谷歌OCPC) 2023-07-19 08:01:30
-
WordPress的古腾堡全站编辑器site-editor.php介绍(附:site-editor.php启用代码) 2023-07-16 08:01:57
-
WordPress的Customize Partial功能最全介绍(含:demo代码) 2023-07-16 00:21:56