【问题标题】:WP rest api jwt authWP rest api jwt 身份验证
【发布时间】:2016-03-24 13:33:27
【问题描述】:

我想通过这个插件使用 WP REST API 身份验证:https://github.com/Tmeister/wp-api-jwt-auth

我在 POST 上通过此请求获得令牌:http://localhost/wp_rest/wp-json/jwt-auth/v1/token

但是我不能做post mehod的请求: 本地主机/wp_rest/wp-json/wp/v2/posts

我收到错误 403

{
    "code": "rest_forbidden"
    "message": "You don't have permission to do this."
    "data": {
        "status": 403
    }
}

在我的标题中我有这个:

Authorization: Bearer
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3RcL3dwX3Jlc3QiLCJpYXQiOjE0NTAzNDEwMTgsIm5iZiI6MTQ1MDM0MTAxOCwiZXhwIjoxNDUwOTQ1ODE4LCJkYXRhIjp7InVzZXIiOnsiaWQiOiIxIn19fQ.rGNPsU4EocClWLYWaSDs1hDJMODszg-eKfqnKSEsiw0

我正在尝试使用 localhost/wp_rest/wp-json/jwt-auth/v1/token/validate 但我收到此错误:

{
    "code": "jwt_auth_no_auth_header",
    "message": "Authorization header not found.",
    "data": {
        "status": 403
    }
}

有什么想法吗?

【问题讨论】:

    标签: wordpress api rest jwt


    【解决方案1】:

    您的请求中似乎没有包含授权标头。您需要在请求标头中添加'Authorization': 'Bearer PLACE_TOKEN_HERE'

    作为示例:

    var req = {
        method: 'POST',
        url: window.location.href + 'wp-json/wp/v2/posts',
        headers: {
          'Authorization': 'Bearer ' + TOKEN_GOES_HERE
        }
        data: DATA TO PASS GOES HERE
    }
    $http(req);
    

    【讨论】:

    • 我在 Flutter 应用程序中使用它并像这样 ` Map requestHeaders = { 'Authorization': '$urlHeader', }; var url = new Uri.http( Webisite.url, "/wp-json/jwt-auth/v1/token", ); var client = http.Client(); var response = await client.post( url, headers: requestHeaders, body: { "username": email, "social_login": "true", }, ); `但是重新验证给了我错误?如何解决这个问题
    【解决方案2】:

    如果 Leo Gono 和 Tunaki 提供的答案仍然不能解决您的问题,如果您使用的是 Apache,请确保您已将 following code 添加到您的 .htaccess

    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
    

    确保在 .htaccess 中将这些行放在最后一行之前,并带有“[L]”,否则将无法处理。

    授权标头可能会被框架设置的服务器丢弃。 (我不得不更改 Laravel 的 htaccess)

    【讨论】:

      【解决方案3】:

      我在设置同一个插件时遇到了类似的问题,因此我制作了一个视频,详细介绍了我快速启动测试环境、安装插件、执行插件工作所需的设置以及验证其功能所遵循的过程。

      这里是:https://youtu.be/Mp7T7x1oxDk

      【讨论】:

        【解决方案4】:

        我遇到了完全相同的问题。我的解决方案很简单。

        使用该工具(在我的例子中是邮递员 (https://www.getpostman.com)),我选择手动添加身份验证标头(强制标头)。您可能希望在使用代码时手动设置它,在 HTTP Header 部分下(不是作为参数,以防万一:))。

        亲切的问候, 莱因哈德

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-01
          • 2016-10-06
          • 2021-10-08
          • 2019-02-07
          • 1970-01-01
          • 2019-03-01
          • 2021-12-21
          • 2016-04-24
          相关资源
          最近更新 更多