1
votes

Comment ajouter l'authentification JWT à swagger (go + echo + swaggo / swag)

J'utilise swaggo ( https://github.com/swaggo/swag ) pour auto -créer une spécification swagger fonctionnelle pour mon API.

La spécification swagger me permet d'exécuter tous mes points de terminaison d'API et de recevoir des réponses.

J'ai ensuite ajouté l'authentification JWT à tous mes points de terminaison. Maintenant, je ne peux pas utiliser la spécification swagger pour exécuter des points de terminaison, car elle échoue toujours à l'authentification.

Quelles annotations dois-je ajouter à chaque point de terminaison, qui configureront la spécification Swagger pour permettre à un JWT d'être passé?

J'ai lu le fichier README à l'adresse https://github.com/swaggo/swag et Google a effectué une recherche, en vain.


0 commentaires

4 Réponses :


2
votes

Il semble que ces commentaires ajoutés à chaque point de terminaison ont fait l'affaire ...

// @securityDefinitions.apikey ApiKeyAuth

Ce commentaire a également été ajouté à notre fichier main.go

// @Security ApiKeyAuth
// @param Authorization header string true "Authorization"


1 commentaires

L'ajout d'un paramètre // @ ne va-t-il pas à l'encontre du but de l'annotation dans le fichier main.go? Je veux dire que l'ajouter en tant que @param, c'est comme dire, hé, j'ai besoin de cela comme en-tête pour ce point de terminaison explicitement



0
votes

Il semble que le middleware JWT que vous avez ajouté sera invoqué avant le transfert de swaaggo / swag. Pouvez-vous publier vos paramètres de routage?


0 commentaires

1
votes

Vous en aurez besoin dans main.go (cela enverra un jeton au format dans votre en-tête: " YourTokenName : token "):

// @Security <YourTypeOfKey>


0 commentaires

0
votes

// @Param Authorization header string true "Insérez votre jeton d'accès" par défaut (Bearer )

Ajoutez ce paramètre à l'en-tête de chaque point de terminaison dans swagger v2.0

Dans la version 3.0, nous avons un accès direct aux jetons du porteur.


0 commentaires