站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > 博客日志 >

WordPress教程:自定义WP REST API (WP API)授权

2015-08-21 09:22 | 来源:网络整理 | 编辑:秋军 |

* A {@see WP_Error} instance can be returned if an error occurs, and

* this should match the format used by API methods internally (that is,

* the `status` data should be used). A callback can return `true` to

* indicate that the authentication method was used, and it succeeded.

*

* @param WP_Error|null|boolean WP_Error if authentication error, null if authentication method wasn't used, true if authentication succeeded

*/

return apply_filters( 'json_authentication_errors', null );

}

基于上面的这个函数以及其被调用位置,我们可以加进去一个hook,以确认认证是否成功:

/**

* WP JSON API 认证检查

* @param null

* @return boolean 是否认证成功

* @author suifengtec coolwp.com

*/

function coolwp_rest_api_auth_check( $result ){

if(

!isset($_GET['id'])

// ||!isset($_GET['app_key'])

||!isset($_GET['app_token'])

||empty($_GET['id'])

// ||empty($_GET['app_key'])

||empty($_GET['app_token'])

){

return false;

}

//获取从应用GET过来的用户id、app_key和app_token,当然了,你也可以只用一个去app_key和app_token中的任何一个去检查

$user_id = (int)$_GET['id'];

// $app_key = sanitize_text_field($_GET['app_key']);

$app_token = sanitize_text_field($_GET['app_token']);

//查询app_key和app_token,当然了,你也可以自定义一种算法,

//$wp_key = get_user_meta( $user_id, 'app_key', true);

$wp_token = get_user_meta( $user_id, 'app_token', true);

//将从应用客户端获取到的值与数据库存储的值进行对比

if(

( $wp_token == $app_token )

// &&( $wp_key == $app_key )

){

return true;

}

return false;

}

add_filter('json_authentication_errors', 'coolwp_rest_api_auth_check');

结论

加入 rest api 的 WordPress 甚至可以让你做一个在线支付网站,有了这组 api ,基于 WordPress 的原生安卓应用和IOS应用可以更好的与 WordPress 站点进行交互。

  • WordPress中删除垃圾评论的方法
  • WordPress 添加Meta Box的方法
  • WordPress 自定义文章列表列的实现方法
  • WordPress的模板层次
  • 提高性能!五种WordPress防止垃圾评论方法
  • WordPress博客程序常见错误的解决方法
  • WordPress用户登录登出后重定向到指定页面的实现方法
  • wordpress页面压缩 加速网站访问的方法
  • 优化WordPress数据库提升网站运行速度
  • WordPress博客系统搜索引擎优化seo全攻略
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号