В соответствующей сессии CDP зарегистрируйте обработчики до навигации, затем вызовите Fetch.enable с этими параметрами:

{"handleAuthRequests": true}
СобытиеТребуемый путь ответа
Fetch.requestPausedcontinueRequest с тем же requestId, когда обычная работа должна продолжаться
Fetch.authRequiredПроверьте authChallenge, затем используйте continueWithAuth с requestId события аутентификации

Для распознанного посредника параметры аутентификации таковы:

{
  "requestId": "REQUEST_ID_FROM_AUTH_EVENT",
  "authChallengeResponse": {
    "response": "ProvideCredentials",
    "username": "PROXY_USERNAME",
    "password": "PROXY_PASSWORD"
  }
}

Перед загрузкой учётной записи из источника учётных данных проверьте, что authChallenge.source равен Proxy и его источник — ожидаемый инициатор вызова. Вызов Server следует другой политике аутентификации.

Отслеживайте разрешённые попытки для каждого перехваченного запроса; повторно отклонённый вызов должен получить CancelAuth, а не очередную бесконечную отправку. Очищайте отслеживание при завершении или закрытии сессии.

Если страница зависает, проверьте и нерешённые события requestPaused. Обработка аутентификации не продолжает их автоматически, и ни один из путей событий не выбирает прокси-маршрут браузера.

Похожие статьи