2015-02-23 30 views
6

Utilizzo la JWT (https://github.com/tymondesigns/jwt-auth) per generare token di sessione nella mia API.JWT: come inviare l'autorizzazione nell'intestazione?

ho fatto tutte le impostazioni relative a lavorare come la documentazione dell'autore.

Dopo aver collegato la seduta, faccio uso di un URL per restituire i dati delle mie categorie. Quando passo il token direttamente nell'URL, funziona. Come segue:

http://api.domain.com/categories?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY 

solo ho bisogno di passare il token, nella mia richiesta sulla testata, utilizzando il portatore di autenticazione. Ma non funziona. Vedi come sto attraversando:

Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9kZXYuaW1pYXZpcFwvYXBpXC9hdXRoXC9hdXRoZW50aWNhdGUiLCJzdWIiOiIxIiwiaWF0IjoxNDIxODQyMzU4LCJleHAiOjE0MjE5Mjg3NTh9.-nqKoARKc2t1bI2j5KFEP_zRU8KCki_dghKe6dtAedY 

Cosa c'è di sbagliato?

Nella documentazione JWT menzioni l'uso della forma ho passato sopra. Ma non funziona.

risposta

4

Se si utilizza Apache, quindi le intestazioni non sono probabilmente che lo attraversa, a causa di this known issue all'interno di Symfony

Sarà necessario aggiungere quanto segue al vostro host virtuale se questo è il caso:

RewriteEngine On 
RewriteCond %{HTTP:Authorization} ^(.*) 
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 
+0

era proprio questo ... problema risolto! grazie mille! – Valdinei

0

Si prega di assicurarsi di avere sotto la linea nel backend (lato server) Codice Questo è per PHP.

header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization'); 

Si noti che con la riga precedente si consente l'intestazione "Autorizzazione".

Una volta sopra la riga del codice lato server, è possibile eseguire la funzione seguente (se si sta codificando in php) per ottenere tutte le intestazioni in serie.

getallheaders(); 
+0

In realtà non è stato il colpo di testa sul lato server. Aggiunto secondo la sua dichiarazione, ma non funziona nemmeno. Ma penso che ora sia qualcosa con l'applicazione. – Valdinei