#c# #.net #asp.net-core #.net-core
#c# #.net #asp.net-core #.net-core
Вопрос:
Возможно ли заполнить заголовки запросов пользовательскими заголовками в промежуточном программном обеспечении? Моя цель — вызывать внешний rest api, в котором реализована базовая аутентификация. Поэтому было бы неплохо сохранить секреты API во внутреннем коде.
Я перепробовал все методы, которые могли бы добавить заголовок к заголовкам запросов в контексте HTTP, но, похоже, это немного сложнее, чем я думал раньше.
Нет проблем с изменением заголовков ответов, может быть, есть такой способ с заголовками запросов?
Ответ №1:
Здесь есть разница между изменением запросов и ответов.
Поскольку вы вызываете rest API, вам нужно ввести IHttpClientFactory
> Создать клиент > Добавить к нему заголовки аутентификации через appsettings.json (например)
или
Вы можете использовать Typed Clients
, который можно настроить следующим образом:
services.AddHttpClient<GithubClient>(c => { c.DefaultRequestHeaders.Add("Bearer", "token"); });
Вы можете добавить свои заголовки аутентификации из конфигурации выше, используя DefaultRequestHeaders
свойство, затем внедрить HttpClient
в вашу типизированную службу, которая будет отвечать за выполнение вызовов вашего rest api.
Все об этой теме доступно в документах. Смотрите здесь
Комментарии:
1. Привет, HMZ. Спасибо за ответ. Вызовы API будут выполняться с помощью AXIOS со стороны клиента. Как я вижу, без экземпляра HttpClient это невозможно…
2. @EduardSurovij Ну, это большая часть информации, которую следует исключить из вашего вопроса! Самый безопасный способ — сохранить токен в серверной части, а затем вызвать действие на вашем сервере, чтобы вызвать rest api, кроме этого, нет гарантии безопасности токена.