JWT Authentication for WP REST API 授权验证问题 - 文章教程

JWT Authentication for WP REST API 授权验证问题

发布于 2018-11-03 字数 1295 浏览 2286 评论 0

网站安装了 JWT Authentication for WP REST API 插件,针对授权采用 token 验证而不是传统的 Cookie 验证,其中就发现了一个问题,将已取得的授权 token 发送到接口上进行验证,总是提示获取不到授权信息,在 WrodPress 插件论坛里面找到了解决方法。

JWT Authentication for WP REST API 授权验证问题

使用这个插件几乎都会遇到这样的问题,在检查 jwt-authentication-for-wp-rest-api/public/class-jwt-auth-public.php 的validate_token 方法时,注意到该函数只检查全局变量,它似乎没有从请求中获取所有信息,所以我们必须要修改下这里的获取方法:

在文件的第 237 行添加下面的代码:

if(!$auth) {
    $auth = isset(getallheaders()['Authorization']) ? getallheaders()['Authorization'] : false;
}

插件的作者应该是没有主题到这个问题,所以你修改了插件的文件,注意下次更新的时候看看这个地方是否被覆盖了。

注意:我在添加上面代码的时候直接报语法错误错了,因为我使用的是 PHP 5.3 并不支持在函数返回值后面直接去数组值,换到 PHP 5.4 就好了。

还有我感觉获取授权的时候应该把用户的 ID 返回来,这样好标识和储存用户信息,同样你也可以修改这个文件实现。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

佚名

文章 0 评论 0

文江

文章 0 评论 0

2012013325

文章 0 评论 0

女中豪杰

文章 2 评论 0