用于WP REST API的JWT认证:;没有找到与URL和请求方法“匹配的路由;


JWT Authentication for WP REST API: "No route was found matching the URL and request method"

我的REST工作得很好,我可以从链接中得到结果:"172.18.52.78/bniforum451/wp-json/wp/v2/posts"和所有组合REST链接。

但是,当我调用链接172.18.52.78/bniforum451/wp-json/jwt-auth/v1/token时,我总是得到"没有找到与URL和请求方法匹配的路由"。

事件尽管当我调用(172.18.52.78/bniforum451/wp-json/jwt auth/v1/)时,我可以得到结果:

{
  "namespace": "jwt-auth/v1",
  "routes": {
    "/jwt-auth/v1": {
      "namespace": "jwt-auth/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "jwt-auth/v1"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "172.18.52.78/bniforum451/wp-json/jwt-auth/v1"
      }
    },
    "/jwt-auth/v1/token": {
      "namespace": "jwt-auth/v1",
      "methods": [
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "POST"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "172.18.52.78/bniforum451/wp-json/jwt-auth/v1/token"
      }
    },
    "/jwt-auth/v1/token/validate": {
      "namespace": "jwt-auth/v1",
      "methods": [
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "POST"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "172.18.52.78/bniforum451/wp-json/jwt-auth/v1/token/validate"
      }
    }
  },
  "_links": {
    "up": [
      {
        "href": "172.18.52.78/bniforum451/wp-json/"
      }
    ]
  }
}

解决我的问题的最佳做法是什么?

我正在使用:

  • Wordpress 4.5.3版
  • XAMPP v3.2.1(本地服务器Windows 7)
  • PHP版本6.5.14
  • WP REST API(版本2.0-beta13)
  • WP-API的JWT身份验证(版本1.2.0)

感谢

Gema

  • 我从"172.18.52.78"链接中删除了"http",因为我还没有10信誉:D

尝试观看我创建的视频:https://youtu.be/Mp7T7x1oxDk

我认为您在/bniforum451/wp-json/jwt-auth/v1/token上执行GET请求,而它应该是POST。您还应该在请求正文中传递usernamepassword

/bniforum451/wp-json/jwt-auth/v1/之所以有效,是因为它旨在响应GET请求,而不是POST。它只提供API信息。

如果您查看从成功调用中获得的输出,它会"告诉"您/token端点接受什么方法。

"/jwt-auth/v1/token": {
  "namespace": "jwt-auth/v1",
  "methods": [
    "POST"
  ],
  "endpoints": [
    {
      "methods": [
        "POST"
      ],
      "args": []
    }
  ],
  "_links": {
    "self": "172.18.52.78/bniforum451/wp-json/jwt-auth/v1/token"
  }
},