Ты используешь атрибут [Authorize] из фреймворка для авторизации, но не следуешь правилам, чтобы фреймворк понял, что клиент авторизован. Убедись, что передаешь токен для авторизации правильным способом, через метод SignInAsync в объекте HttpContext, а не через куки с именем "token". Кроме того, не забудь настроить процесс авторизации правильно. Здесь есть хороший туториал по авторизации с использованием JWT.
Если токен не равен null, то добавь следующие заголовки к _httpClient: "Accept: application/json" и "Authorization: Bearer [токен]". Однако, имей в виду, что этот код не будет работать корректно, так как заголовки устанавливаются для _httpClient, а не для конкретного запроса. Кроме того, Middleware является синглтоном, а _httpClient также используется только одним потоком и не может делать параллельные запросы.