Je teste une implémentation de la sécurité basée sur JWT Token basée sur l' article suivant . J'ai reçu avec succès un jeton du serveur de test. Je ne parviens pas à comprendre comment faire envoyer le jeton par le programme client Chrome POSTMAN REST dans l'en-tête.
Mes questions sont les suivantes:
1) Est-ce que j'utilise le bon nom d'en-tête et / ou l'interface POSTMAN?
2) Dois-je encoder le jeton en base 64? J'ai pensé que je pourrais simplement renvoyer le jeton.
Réponses:
Pour le nom de l'en-tête de la demande, utilisez simplement l'autorisation. Placez le porteur avant le jeton. Je viens de l'essayer et cela fonctionne pour moi.
Autorisation: porteur TOKEN_STRING
Chaque partie du JWT est une valeur encodée base64url.
la source
Voici une image si ça aide :)
Mettre à jour:
L'équipe du facteur a ajouté "Jeton de porteur" à "l'onglet d'autorisation":
la source
J'ajoute à cette question une petite astuce intéressante qui peut vous aider à tester JWT Apis.
C'est très simple en fait.
Lorsque vous vous connectez, dans votre Api (point de terminaison de connexion), vous recevrez immédiatement votre jeton, et comme @ mick-cullen l'a dit, vous devrez utiliser le JWT sur votre en-tête comme:
Désormais, si vous souhaitez automatiser ou simplement vous simplifier la vie, vos tests vous permettent d'enregistrer le jeton en tant que fichier global que vous pouvez appeler sur tous les autres points de terminaison en tant que:
Sur Postman: Ensuite, créez une variable globale dans postman comme jwt_token = TOKEN_STRING.
Sur votre point de terminaison de connexion: pour le rendre utile, ajoutez au début de l'onglet Tests, ajoutez:
J'imagine que votre API renvoie le jeton en tant que json sur la réponse sous la forme: {"jwt_token": "TOKEN_STRING"}, il peut y avoir une sorte de variation.
Sur la première ligne, vous ajoutez la réponse à la variable de données. Nettoyez votre Global et attribuez la valeur.
Alors maintenant, vous avez votre jeton sur la variable globale, ce qui facilite l'utilisation de Authorization: Bearer {{jwt_token}} sur tous vos points de terminaison.
J'espère que cette astuce vous aidera.
MODIFIER
Quelque chose à lire
À propos des tests sur Postman: exemples de tests
Ligne de commande: Newman
CI: intégration avec Jenkins
Bel article de blog: automatisation des tests de l'API maître
la source
Test
onglet et le codage Postman. Y a-t-il une ressource que vous recommandez pour commencer?J'ai eu le même problème
Flask
et après avoir essayé les 2 premières solutions qui sont les mêmes (Authorization: Bearer <token>
), et obtenu ceci:J'ai finalement réussi à le résoudre en utilisant:
Je pensais que cela pourrait faire gagner du temps aux personnes qui rencontrent la même chose.
la source
Authentication credentials were not provided
àdjango
utiliserBearer <token>
. résolu avecjwt <token>
. Merci pour la solutionVoici comment définir ce jeton automatiquement
Sur votre demande de connexion / authentification
Puis pour la page authentifiée
la source
Si vous souhaitez utiliser le facteur, la bonne manière est d'utiliser les en-têtes comme tels
clé: Autorisation
valeur: jwt {token}
aussi simple que cela.
la source
Pour les personnes qui utilisent le plugin wordpress Advanced Access Manager pour ouvrir l'authentification JWT.
Le champ En-tête doit mettre Authentification au lieu d' Autorisation
AAM l'a mentionné dans sa documentation ,
J'espère que cela aide quelqu'un! Merci pour les autres réponses m'a beaucoup aidé aussi !!
la source
Terminé!
la source
Tout le reste c'est à dire. Paramètres, autorisation, corps, script de pré-demande, les tests sont vides, ouvrez simplement l' onglet En- têtes et ajoutez comme indiqué dans l'image. C'est la même chose pour la demande GET.
la source
Le facteur n'a pas fonctionné pour moi. J'ai dû utiliser une extension chrome appelée RESTED qui a fonctionné.
la source
J'ai fait comme moplin mentionné. Mais dans mon cas, le service envoie le JWT dans les en-têtes de réponse, en tant que valeur sous la clé "Autorisation".
Ce que j'ai fait, c'est de créer une variable globale dans Postman comme
dans la demande de connexion-> Onglet Tests, ajoutez
dans d'autres demandes, sélectionnez l'onglet En-têtes et donnez
la source
Dans la dernière version de Postman (7 ++), il se peut qu'il n'y ait pas de champ Bearer dans l'autorisation, alors allez à l'onglet En-tête
sélectionnez la clé comme autorisation et écrivez la valeur JWT
la source
Bearer Token
assistant dans l'Authorization
onglet, l'ajout de la valeur du jeton ici (codé en dur ou en tant que variable dynamique) créera le même en-Authorization
tête pour la requête.