处理 WordPress REST API(WP API) 中的用户认证,发送 POST 请求
文 / @WordPress主题
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古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45