在相关的 CDP 会话上,先于导航注册处理器,然后用以下参数调用 Fetch.enable:

{"handleAuthRequests": true}
事件所需的响应路径
Fetch.requestPaused当普通请求应继续时,用该 requestId 调用 continueRequest
Fetch.authRequired检查 authChallenge,然后用认证事件的 requestId 调用 continueWithAuth

对于已识别的中间代理,认证参数如下:

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

在从凭据来源读取账号之前,先确认 authChallenge.source 为 Proxy,且其来源正是目标质询方。Server 质询则遵循 另一套认证策略.

按被拦截的请求记录允许的尝试次数;被反复拒绝的质询应返回 CancelAuth,而不是再次无限提交。请求完成或会话关闭时清除记录。

如果页面卡住,也要检查未处理的 requestPaused 事件。认证处理不会自动放行它们,而且两条事件路径都不会替你选择浏览器的代理路由。

相关文章