express - secret - postman token authentication
Token JWT en el encabezado POSTMAN (8)
Aquí hay una imagen si ayuda :)
Actualizar:
El equipo de cartero agregó "Ficha de portador" a la "pestaña de autorización":
Estoy probando una implementación de seguridad basada en JWT Token basada en el siguiente article . He recibido con éxito un token del servidor de prueba. No puedo entender cómo hacer que el programa cliente de Chrome POSTMAN REST envíe el token en el encabezado.
Mis preguntas son las siguientes:
1) ¿Estoy utilizando el nombre correcto del encabezado y / o la interfaz POSTMAN?
2) ¿Necesito base 64 para codificar el token? Pensé que podría devolver la ficha.
De alguna manera, el cartero no funcionó para mí. Tuve que usar una extensión de cromo llamada RESTED que funcionó.
Estoy agregando a esta pregunta un pequeño consejo interesante que puede ayudarlos a ustedes a probar JWT Apis.
Es muy simple en realidad.
Cuando inicie sesión, en su Api (punto de inicio de sesión), recibirá inmediatamente su token, y como @ mick-cullen dijo que tendrá que usar el JWT en su encabezado como:
Authorization: Bearer TOKEN_STRING
Ahora, si desea automatizar o simplemente hacer su vida más fácil, en sus pruebas puede guardar el token como global que puede llamar en todos los otros puntos finales como:
Authorization: Bearer {{jwt_token}}
En el cartero: luego crea una variable global en el cartero como jwt_token = TOKEN_STRING.
En su punto final de inicio de sesión: Para que sea útil, agregue el comienzo de la pestaña Pruebas agregue:
var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);
Supongo que su API está devolviendo el token como json en la respuesta como: {"jwt_token": "TOKEN_STRING"}, puede haber algún tipo de variación.
En la primera línea, agrega la respuesta a la varibale de datos. Limpie su Global y asigne el valor.
Así que ahora tiene su token en la variable global, lo que hace que sea fácil de usar Authorization: Bearer {{jwt_token}} en todos sus endpoints.
Espero que este consejo ayude.
EDITAR
Algo para leer
Acerca de las pruebas en Postman: ejemplos de prueba
Línea de comando: Newman
Buena publicación en el blog: master api test automation
Lo hice como mencionó Moplin. Pero en mi caso el servicio envía el JWT en los encabezados de respuesta, como un valor debajo de la clave "Autorización".
Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ
Lo que hice fue crear una variable global en el cartero como
clave-> jwt
valor-> blahblah
en solicitud de inicio de sesión-> Pestaña Pruebas, agregue
postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));
en otras solicitudes, seleccione la pestaña Encabezados y dele
clave-> Autorización
valor -> {{jwt}}
Para el nombre del Encabezado de la solicitud solo use Autorización. Coloque al portador antes del token. Lo probé y funciona para mí.
Autorización: portador TOKEN_STRING
Cada parte del JWT es un valor codificado en base64url.
Para las personas que usan el complemento de WordPress Advanced Access Manager para abrir la autenticación JWT.
El campo Encabezado debe poner Autenticación en lugar de Autorización
AAM lo mencionó dentro de su documentation ,
¡Nota! AAM no utiliza el encabezado de Autorización estándar, ya que la mayoría de los servidores Apache lo omiten. ...
Espero que ayude a alguien! Gracias por otras respuestas también me ayudó mucho !!
Tuve el mismo problema en Flask
y después de probar las 2 primeras soluciones que son las mismas ( Authorization: Bearer <token>
) y obtener esto:
{
"description": "Unsupported authorization type",
"error": "Invalid JWT header",
"status_code": 401
}
Pude finalmente resolverlo usando:
Authorization: jwt <token>
Pensó que podría ahorrar algo de tiempo a las personas que encuentran lo mismo.