Как получить доступ к данным запроса c в Go? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть API, написанный на go, и я использую структуру gin-goni c для реализации своих конечных точек. Я следую чистой архитектуре для своего проекта, что означает, что все мое приложение разделено на несколько уровней, а именно - контроллер, служба, репозиторий и сеанс. Конечные точки защищены auth0, а проверка выполняется в промежуточном программном обеспечении gin. В промежуточном программном обеспечении я могу извлечь тему из JWT (указано в заголовке)

Теперь вот мой вопрос. Я хочу использовать это значение темы в своих запросах. Мне было интересно, могу ли я сохранить Subject (sub) в контексте и использовать его в других частях моего кода БЕЗ ПЕРЕДАЧИ КОНТЕКСТА. Это возможно? Или мне просто нужно обновить все мои функции и добавить новый параметр «Sub» для всех нисходящих вызовов?

Я имею в виду использование глобальной переменной для доступа к данным запроса c (SUB из токена JWT). Я знаю, что это плохая практика - мне просто интересно, есть ли другой способ выполнить sh это, кроме передачи данных c запроса? Любая помощь приветствуется.

1 Ответ

1 голос
/ 17 июня 2020

Это действительно весь смысл контекста - он существует, чтобы удерживать такие вещи и передаваться по цепочке. Это важно, потому что вы хотите сохранить область действия запроса - если вы начнете использовать глобальные переменные, вы можете столкнуться с проблемами, из-за которых вы получите конкуренцию, потому что несколько запросов не работают с одними и теми же данными. Точно так же, если токен был признан недействительным между запросами.

Если ваше промежуточное программное обеспечение аутентификации запускается до вашего запроса (что, похоже, так и есть), то это должно быть просто вопросом того, как оно помещает тему в контекст таким образом ты доволен.

...