Как добавить JWT-аутентификацию в сваггер (go + echo + swaggo/swag)
Я использую swaggo ( https://github.com/swaggo/swag) для автоматического создания рабочей спецификации Swagger для моего API.
Спецификация Swagger позволяет мне запускать все мои конечные точки API и получать ответы.
Затем я добавил аутентификацию JWT ко всем моим конечным точкам. Теперь я не могу использовать спецификацию swagger для запуска каких-либо конечных точек, так как всегда происходит сбой аутентификации.
Какие аннотации мне нужно добавить к каждой конечной точке, чтобы настроить спецификацию Swagger, чтобы разрешить передачу JWT?
Я прочитал README по адресу https://github.com/swaggo/swag и провел поиск в Google, но безрезультатно.
4 ответа
Они понадобятся вам в main.go (токен будет отправлен в ваш заголовок в формате: "YourTokenName
:
token
"):
//@securityDefinitions.apikey <YourTypeOfKey>
//@in header
//@name <YourTokenName>
Затем добавьте этот комментарий к каждой конечной точке, для которой нужен токен аутентификации:
// @Security <YourTypeOfKey>
Кажется, что эти комментарии, добавленные к каждой конечной точке, сделали свое дело...
// @Security ApiKeyAuth
// @param Authorization header string true "Authorization"
Этот комментарий также был добавлен в наш файл main.go
// @securityDefinitions.apikey ApiKeyAuth
// @Param Authorization header string true "Insert your access token" default(Bearer <Add access token here>)
Добавьте этот параметр в заголовок для каждой конечной точки в swagger v2.0.
В версии 3.0 у нас есть прямой доступ к токену носителя.
Похоже, что промежуточное программное обеспечение JWT, которое вы добавили, будет вызвано до того, как swaaggo/swag's hander Можете ли вы опубликовать свои настройки маршрутизации?