• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    JWT Authentication插件为WordPress REST API验证用户权限【转】

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • WordPress作为全球使用量最大建站程序,不仅可以用来搭建web网站,还能提供诸多api实现客户端功能,以方便接入安卓APP、iOS应用、微信小程序等等应用场景。WordPress官方也提供了安卓APP版本的客户端应用,以便站长管理自己的网站内容。WordPress官方提供了WordPress REST API读写WordPress网站,与web端不同它将返回json数据,而不是传统的HTML数据,我们可以使用这些WordPress REST API来实现我们的客户端应用。

      但是,WordPress REST API并没有完整的用户鉴权功能,为了提供用户登录注册能力,我们可以使用JWT Authentication插件来为WordPress REST API验证用户权限。当然,你也可以根据WordPress REST API自己写鉴权接口,不必使用JWT Authentication插件。

      JWT Authentication插件使用

      WordPress后台插件搜索即可安装,或者通过WordPress插件官网搜索下载安装。

      安装好之后你需要对JWT Authentication插件进行配置。

      编辑wp-config.php文件,加入如下代码,设置鉴权时使用的加密秘钥。

      define('JWT_AUTH_SECRET_KEY', '你的加密秘钥字符串');

      跨域支持

      如果你的客户端需要跨域请求WordPress,那么你需要在wp-config.php文件中添加如下跨域配置。

      define('JWT_AUTH_CORS_ENABLE', true);

      到此JWT Authentication插件安装完毕,该插件只是对WordPress REST API进行补充,所以你的WordPress REST API多了两个接口,分别是获取权限和鉴定权限的接口。

      • /wp-json/jwt-auth/v1/token: 用于验证用户名、密码,并返回 Token
      • /wp-json/jwt-auth/v1/token/validate:用于验证 Token 是否正确

      简单测试

      使用postman软件发送一个用户登录的post数据,测试服务器响应。

      请求地址:你的域名/wp-json/jwt-auth/v1/token

      请求值:用户信息,如下图所示。

      JWT Authentication插件为WordPress REST API验证用户权限

      关于鉴权

      如上图获取到登录用户的token令牌后,后续需要权限的操作中只需要在请求头上携带token值,JWT Authentication插件将会对每次请求进行鉴权处理!

      简单使用

      以获取当前登录用户信息为例

      请求地址:域名/wp-json/wp/v2/users/me

      请求值:空

      额外请求头部:Authorization=Bearer+上面的token值

      结果如下图

      JWT Authentication插件为WordPress REST API验证用户权限

      成功得到用户信息,失败将返回错误信息json数据。

      你需要登录,才能进行发帖操作