使用 JWT 切换方法的身份验证 WP API

Authentication WP API with JWT switching method

我有一个使用 WP API 2 (beta13.1) 和 JWT 插件设置的基本 WP 站点。如果我在已经登录到 WP 时调用 /token 端点,我会得到成功的响应。

但是,如果我没有登录,我会收到 "No route was found matching the URL and request method" 消息。

进一步挖掘后,我可以在我的服务器访问日志中看到 POST 请求作为 GET 请求被接收,因此必须在某处进行更改,因此我看到了错误消息!

127.0.0.1 - - [06/Jun/2016:16:19:04 +0000] "GET /test/wp-json/jwt-auth/v1/token HTTP/1.1" 404 450 "http://localhost/test/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0"

如果我向请求添加一个有效的 "wordpress_logged_in" cookie,它就可以正常工作。

我不知道发生了什么,登录用户的请求不应该要求用户已经登录!

万一其他人偶然发现这个问题,对我来说问题是清漆。 如果您在 Varnish 配置中有 return (lookup),那么在尝试缓存请求时,它会转换为 GET

参见:https://serverfault.com/questions/563560/varnish-transforming-post-to-get