2015-12-17 37 views
5

Vorrei uso WP REST API autenticazione con questo plugin: https://github.com/Tmeister/wp-api-jwt-authWP API REST JWT autenticazione

ottengo il token con questo req su POST: http://localhost/wp_rest/wp-json/jwt-auth/v1/token

Ma non posso fare la richiesta per la post mehod: localhost/wp_rest/wp-JSON/WP/V2/messaggi

ottengo l'errore :

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

Nel mio colpo di testa ho questo:

Authorization: Bearer 
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3RcL3dwX3Jlc3QiLCJpYXQiOjE0NTAzNDEwMTgsIm5iZiI6MTQ1MDM0MTAxOCwiZXhwIjoxNDUwOTQ1ODE4LCJkYXRhIjp7InVzZXIiOnsiaWQiOiIxIn19fQ.rGNPsU4EocClWLYWaSDs1hDJMODszg-eKfqnKSEsiw0 

sto cercando con localhost/wp_rest/wp-JSON/JWT-auth/v1/gettone/validate ma ottengo questo errore:

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

Qualche idea?

risposta

4

Sembra che tu non abbia incluso le intestazioni di autorizzazione nella richiesta. Devi aggiungere 'Authorization': 'Bearer PLACE_TOKEN_HERE' nelle intestazioni delle tue richieste.

Come un campione:

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

Questo risolto il mio problema, ma il test tramite un set di strumenti. –

4

Se la risposta fornita da Leo Gono e Tunaki ancora non risolve il problema, assicurarsi che hai aggiunto il following code al .htaccess:.

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

Assicurati di mettere quelle linee prima dell'ultima riga con un "[L]" nel tuo .htaccess altrimenti non verrà elaborato.

È possibile che l'intestazione di autorizzazione venga scartata dal server delle impostazioni del framework. (Ho dovuto modificare l'htaccess per Laravel)

+0

Non è necessario abilitare l'intestazione di autorizzazione HTTP nel server nginx e nel server Windows. Di default funziona, senza fare nulla. –

+0

Oh, è bello saperlo. Ho dovuto cambiare questo per Apache. –

+2

Assicurati di mettere quelle righe prima dell'ultima riga con un "[L]" nel tuo .htaccess altrimenti non verrà elaborato. –

0

Mi sono imbattuto in problemi simili durante la configurazione dello stesso plug-in, quindi ho creato un video che descriveva dettagliatamente il processo che ho seguito per avviare rapidamente un ambiente di test, installare il plug-in, eseguire il configurazione necessaria affinché il plugin funzioni e quindi convalida la sua funzionalità.

Eccolo: https://youtu.be/Mp7T7x1oxDk

0

Ho avuto esattamente lo stesso problema. La mia soluzione era semplice.

Utilizzo dello strumento (nel mio caso postino (https://www.getpostman.com)), ho scelto di aggiungere manualmente l'intestazione di autenticazione (forzando l'intestazione). Potrebbe essere necessario impostarlo manualmente quando si utilizza il codice, nella sezione Intestazione HTTP (non come parametro, nel caso in cui :)).

Checked enable Authentication header

Cordiali saluti, Reinhard