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

发布于 2018-11-03 字数1293 浏览 706 评论 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 返回来,这样好标识和储存用户信息,同样你也可以修改这个文件实现。

如果你对这篇文章有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助。

扫码二维码加入Web技术交流群

您暂时不能评论!

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

还没有评论!

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