处理 WordPress RESTfull API(WP API) 中的用户认证,发送 POST 请求
2016-02-02 10:57
585 查看
WordPress RESTful API 插件支持3种用户认证方式,分别是:Cookie 认证、Oauth 认证和基本 HTTP认证。通过 RESTful API 获取信息时,这种认证是不需要的,直接获取就可以了。只有在发送信息(POST)到 API 的时候才需要用户认证,否则将返回HTTP 403 未授权错误。今天我们来介绍一下最简单的 Cookie 认证方式。
认证的原理是使用 wp nonces 来确保POST请求是合法的站内请求,而不是其他客户端发送的。
以上代码是基于 Mathril 的,使用其他前端框架或者在后端发送POST请求到RESTful 的认证方法是一样的,文中的代码仅供参考。Oauth 认证和基本 HTTP认证的方法大家可以参考官方文档,如果我有机会测试,也会及时发布文章说明使用方法。
认证的原理是使用 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请求到RESTful 的认证方法是一样的,文中的代码仅供参考。Oauth 认证和基本 HTTP认证的方法大家可以参考官方文档,如果我有机会测试,也会及时发布文章说明使用方法。
相关文章推荐
- shell后台进程id
- Eclipse调试Android工具集锦之三-ADB
- js获取某月的天数以及某天的前一个日期和后一天日期
- 监听UIWebView点击视频播放的事件
- javascript实现瀑布流加载图片原理
- SSD Trim
- 分布式基础通信协议:paxos,totem和gossip
- 去除button点击下去的 灰色阴影效果
- hdu4597 Play Game(DFS)
- selenium(二):小而精
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRID
- ubuntu开启root用户ssh远程登录
- Python入门教程
- wcf rest 服务用于安卓和ISO调用2-------文件上传
- 判断UITextField 输入为空 输入全为空格
- 大数据挖掘: FPGrowth初识--进行商品关联规则挖掘
- 代码阅读工具:Source Navigator和Source Insight
- 归并排序的原理及java代码实现
- WordPress JSON REST API (WP API) 使用文档-创建\获取\编辑\删除文章