Uma extensão do navegador pode encontrar desafios de autenticação de dois lugares diferentes: o proxy que transporta a solicitação e o site de destino. Eles não devem receber automaticamente a mesma conta.

O discriminador útil no evento webRequest.onAuthRequired do Chrome é isProxy. Um callback que remove essa verificação apenas para fazer um prompt desaparecer pode começar a fornecer credenciais do proxy a um desafio da origem.

Combine com o proxy em que você pretende confiar

Verificar isProxy é um começo. Restrinja também o tratamento ao desafiante proxy esperado e ao contexto da solicitação. Uma extensão que gerencia vários endpoints deve selecionar a conta pertencente àquele endpoint, não uma única senha global para cada desafio.

Não presuma que definir a rota do proxy e lidar com o login dele sejam uma única permissão ou uma única chamada de API. O Chrome os documenta separadamente. Use a referência atual de webRequest para dados de eventos e permissões de autenticação. Um exemplo de registro de listener do Manifest V3 mostra o registro síncrono e a seleção de conta dentro do callback.

Verifique a geração do manifesto

Exemplos que mencionam uma API WebRequest experimental vêm de versões antigas da extensão. Os requisitos atuais de permissão dependem da geração do manifesto da extensão e do modelo de implantação. Em especial, o tratamento de autenticação tem seu próprio caminho de permissão compatível; um exemplo obsoleto de listener de bloqueio não basta para estabelecer que uma extensão do Manifest V3 possa executá-lo sem alterações.

Um manipulador correto também deve evitar repetir indefinidamente as mesmas credenciais rejeitadas. Trate um segundo desafio após uma conta fornecida como evidência a investigar, não como um pedido para reproduzir a senha para sempre.

As credenciais devem permanecer no caminho de tratamento protegido adequado da extensão. Não as publique em um arquivo PAC nem as codifique diretamente em um exemplo distribuído. O objetivo é um login de proxy de escopo restrito, não uma regra para todo o navegador que responda a cada desafio de autenticação com o mesmo segredo.

Artigos relacionados