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

发布于 2018-11-03 13:19:02 字数 961 浏览 2786 评论 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 技术交流群。

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

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

0 文章
0 评论
84961 人气
更多

推荐作者

qq_aHcEbj

文章 0 评论 0

寄与心

文章 0 评论 0

13545243122

文章 0 评论 0

流星番茄

文章 0 评论 0

春庭雪

文章 0 评论 0

潮男不是我

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文