Autentificación JWT de la firma de la firma del decodin del error
Estoy usando Django con rest_framework y activé JSONWebTokenAuthentication. Todo parece funcionar bien cuando hago un mensaje para iniciar sesión en un usuario que obtengo un token. Si valido ese token en jwt.io obtengo la firma validada. Pero cuando envíe cualquier conseguir o publicar a un punto final en mi servidor y en la cabecera Puse "Autorización: JWT" Tengo lo siguiente.
06-26 12:20:58.832 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Authorization: JWT {token:<token>} 06-26 12:20:58.842 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ ---> END HTTP (no body) 06-26 12:20:59.322 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ : HTTP/1.0 403 FORBIDDEN 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Allow: GET, POST, HEAD, OPTIONS 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Content-Type: application/json 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Date: Fri, 26 Jun 2015 10:19:34 GMT 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Server: WSGIServer/0.1 Python/2.7.3 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ Vary: Accept, Cookie 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ X-Android-Received-Millis: 1435314059321 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ X-Android-Response-Source: NETWORK 403 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ X-Android-Selected-Transport: http/1.1 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ X-Android-Sent-Millis: 1435314059296 06-26 12:20:59.332 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ X-Frame-Options: SAMEORIGIN 06-26 12:20:59.342 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ {"detail":"Error decoding signature."} 06-26 12:20:59.342 5293-7833/com.infortec.angel.montalbanwebser D/RETROFIT﹕ <--- END HTTP (38-byte body)
{"Detalle": "Error al descodificar la firma."}
- ¿Cómo estructurar mi aplicación usando MVP con rxjava y retrofit para obtener datos de Observables?
- Hilo predeterminado de actualización
- Javax.net.ssl.SSLHandshakeException: Handshake falló en Android 5.0.0 cuando SSLv2 y SSlv3 están deshabilitados (sólo TLS) (y mayores)
- No se puede crear un conversor para mi clase en Android Retrofit library
- Cambiar ConnectionTimeout de Retrofit OkHttpClient en tiempo de ejecución
EDIT: Estoy usando un RequestInterceptor para agregar mi encabezado.
public class TokenRequestInterceptor implements RequestInterceptor{ @Override public void intercept(RequestFacade request) { request.addHeader("Content-Type", "application/json"); request.addHeader("Authorization", "JWT " + Utils.token); } }
Utils.token es un campo estático donde almaceno el token cuando lo recupero del servidor después de la autenticación.
- RxJava y Retrofit - Aumento de excepciones personalizadas en función de la respuesta del servidor
- GSON ignorar elementos con tipo incorrecto
- ¿Cómo reconstruir o restablecer caché Observable, utilizado con Retrofit para obtener nuevos datos?
- ¿Cómo puedo manejar el cuerpo de respuesta vacío con Retrofit 2?
- Cómo llamar al método GET simple usando "Retrofit"
- Android rxJava Manejo de errores con retroadaptación
- Manera correcta de manejar ninguna red con Retrofit y RX-java
- EOFException en Retrofit al ejecutar peticiones PUT síncronas
D/RETROFIT﹕ Authorization: JWT {token:<token>}
Creo que tu problema es que estás enviando el token como un objeto json en vez de enviar el token:
D/RETROFIT﹕ Authorization: JWT <token>
Si desea enviar el token como un json, debe enviarlo en el cuerpo en lugar de hacerlo en el encabezado de autorización.
$ curl -X POST -H "Content-Type: application/json" -d '{"token":"<TOKEN>"}' URL
- Error de inicio de sesión y registro de la aplicación de Android
- ¿Cómo desbloqueo programaticamente la pantalla en el dispositivo con raíz?