2015-12-17 9 views
5

Я хотел бы использовать WP REST API авторизацию с помощью этого плагина: https://github.com/Tmeister/wp-api-jwt-authWP остальных апов JWT Auth

Я получаю фишку с этим REQ на POST: http://localhost/wp_rest/wp-json/jwt-auth/v1/token

Но я не могу сделать запрос на пост mehod: локальных/wp_rest/сор-JSON/WP/v2/сообщения

Я получаю ошибку :

{ 
    "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-аутентификации/v1/лексемы/Validate, но я получаю эту ошибку:

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

Любая идея?

ответ

4

Похоже, вы не указали заголовки авторизации в своем запросе. Вы должны добавить '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); 
+0

Это решило мою проблему, но тестирование с помощью набора инструментов. –

4

Если ответ предоставляется Лео Gono и Tunaki до сих пор не решить вашу проблему, убедитесь, что вы добавили following code вашему .htaccess:.

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

Обязательно поместите эти строки перед последней строкой с «[L]» в вашем .htaccess, иначе он не будет обработан.

Возможно, заголовок авторизации отбрасывается сервером настроек рамок. (Мне пришлось изменить htaccess для Laravel)

+0

Не нужно включать заголовок авторизации HTTP на сервере nginx и сервере Windows. По умолчанию он работает, ничего не делая. –

+0

О, это приятно знать. Мне пришлось изменить это для Apache. –

+2

Обязательно поместите эти строки перед последней строкой с «[L]» в вашем .htaccess, иначе он не будет обработан. –

0

Я столкнулся с подобными проблемами при настройке одного и того же плагина, поэтому я создал видео, подробно описывающее процесс, который я выполнил, чтобы быстро запустить тестовую среду, установить плагин, выполнить необходимую настройку для работы плагина, а затем проверить его функциональность.

Здесь: https://youtu.be/Mp7T7x1oxDk

0

У меня был точно такой же вопрос. Мое решение было простым.

Использование инструмента (в моем случае почтальон (https://www.getpostman.com)), я выбрал для добавления заголовок аутентификации (форсирование заголовка) вручную. Возможно, вы захотите установить его вручную при использовании кода в разделе HTTP Header (а не как paramater, на всякий случай :)).

Checked enable Authentication header

С наилучшими пожеланиями, Reinhard

Смежные вопросы