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

网站安装了 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 返回来,这样好标识和储存用户信息,同样你也可以修改这个文件实现。

以上是 JWT Authentication for WP REST API 授权验证问题 的全部内容, 来源链接: utcz.com/p/232023.html

回到顶部