Как добавить 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 Можете ли вы опубликовать свои настройки маршрутизации?

Другие вопросы по тегам