Chrome onAuthRequired: kontrollera isProxy innan autentiseringsuppgifter skickas
Chroms autentiserings-callback kan beskriva en proxy- eller en ursprungsutmaning. Att ge båda samma autentiseringsuppgifter är ett fel i uppgifternas omfattning.
Ett webbläsartillägg kan möta autentiseringsutmaningar från två olika platser: proxyn som transporterar begäran och målwebbplatsen. De får inte automatiskt få samma konto.
Den användbara särskiljaren i Chroms webRequest.onAuthRequired-händelse är isProxy. En callback som tar bort den kontrollen bara för att en prompt ska försvinna kan börja leverera proxyuppgifter till en ursprungsutmaning.
Matcha proxyn du tänker lita på
Att kontrollera isProxy är en början. Begränsa också hanteringen till den förväntade proxyutmanaren och begärans kontext. Ett tillägg som hanterar flera slutpunkter bör välja kontot som hör till den slutpunkten, inte ett enda globalt lösenord för varje utmaning.
Anta inte att inställningen av proxyvägen och hanteringen av dess inloggning är en behörighet eller ett API-anrop. Chrome dokumenterar dem separat. Använd den aktuella webRequest-referensen för händelsedata och autentiseringsbehörigheter. Ett exempel på registrering av en Manifest V3-lyssnare visar synkron registrering och kontoval inuti callbacken.
Kontrollera manifestgenerationen
Exempel som nämner ett experimentellt WebRequest-API kommer från gamla tilläggsversioner. Nuvarande behörighetskrav beror på tilläggets manifestgeneration och distributionsmodell. I synnerhet har autentiseringshanteringen sin egen stödda behörighetsväg; ett föråldrat exempel på en blockerande lyssnare räcker inte för att fastställa att ett Manifest V3-tillägg kan köra det oförändrat.
En korrekt hanterare måste också undvika att oändligt försöka igen med samma avvisade autentiseringsuppgifter. Behandla en andra utmaning efter ett levererat konto som bevis att undersöka, inte som en begäran att spela upp lösenordet för alltid.
Autentiseringsuppgifter bör stanna i tilläggets lämpliga skyddade hanteringsväg. Publicera dem inte i en PAC-fil och hårdkoda dem inte i ett distribuerat exempel. Målet är en snävt avgränsad proxyinloggning, inte en webbläsaromfattande regel som svarar på varje autentiseringsutmaning med samma hemlighet.