Построение прокси API - cookie для аутентификации - PullRequest
0 голосов
/ 29 октября 2019

Пожалуйста, имейте в виду, что я не разработчик, просто изучаю столько, сколько могу, делая и читая.

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

Мой вопрос связан не с самой функциональностью, поскольку этот код работает и выполняет необходимые действия, а с рекомендациями, производительностью и способами решения этой проблемы.

Итак, чтобы получитьвплоть до специфики:

У одного из наших внешних API есть схема AuthenticationScheme, где вы ПОСТАВЛЯЕТЕ заголовок авторизации:

client.BaseAddress = new Uri(serverURI);
client.DefaultRequestHeaders.Add("Authorization", authparam);

string json = JsonConvert.SerializeObject(null);
StringContent content = new StringContent(json);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

HttpResponseMessage responseMessage = client.PostAsync("signin", content)

Этот код повторно используется на каждой конечной точке, с которой я разговаривал в этом API(около 20). Приведенный выше код возвращает файл cookie с ASP.NET_SessionID и sessionID.

Затем мы повторно используем клиент для дальнейших запросов на фактическое использование API (в той же конечной точке):

HttpResponseMessage responseMessage2 = await client.GetAsync("endpoint", cancellationToken);
if (responseMessage2.IsSuccessStatusCode)
{
      var stringContent = await 
      responseMessage2.Content.ReadAsStringAsync();
      var content2 = JsonConvert.DeserializeObject<IEnumerable<model>>(stringContent)
      Where(ms => ms.SystemName.StartsWith(string));
      return Ok(content2);
      }

В настоящее время мы испытываем задержку ~ 2 секунды на каждый запрос, который я делаю к этому внешнему API, из-за запуска этой процедуры аутентификации и создания нового sessionID во внешнем API.

Могу ли я использовать Cookie любым способом и каким образомЯ начинаю это делать? Кроме того, существует множество повторяющегося кода в отношении авторизации, выполняемой при каждом вызове API для моего API - и использующей много сеансов во внешнем API.

...