Аутентификация через прокси в Chrome CDP: обработка обоих путей событий Fetch
Включите запросы аутентификации до навигации, продолжайте обычные приостановленные запросы и отвечайте только на нужный вызов Proxy с ограниченной политикой попыток.
В соответствующей сессии CDP зарегистрируйте обработчики до навигации, затем вызовите Fetch.enable с этими параметрами:
{"handleAuthRequests": true}| Событие | Требуемый путь ответа |
|---|---|
| Fetch.requestPaused | continueRequest с тем же 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. Обработка аутентификации не продолжает их автоматически, и ни один из путей событий не выбирает прокси-маршрут браузера.