7

Sto cercando di proteggere un sito durante una fase iniziale di sviluppo da occhi indiscreti. L'autenticazione di base su HTTPS sembrava una soluzione ragionevole, ma la presenza di un operatore di servizio sembra impedirgli di funzionare in Chrome. Ciò accade in particolare se un servicestore è già installato, ma il browser non dispone di un'autorizzazione attiva per il dominio desiderato.Conflitto di servizio con autenticazione di base HTTP?

Chrome mostra che la risposta è stata un 401 nella timeline rete

401 in Network timeline

e mostra anche che la scheda del browser sta ricevendo le giuste intestazioni di risposta:

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Basic realm="My realm" 
Date: Tue, 21 Jun 2016 03:09:35 GMT 
Connection: close 
Cache-Control: no-cache 

ma non è così richiede un login, mostra solo il corpo del contenuto della risposta 401.

Si tratta di un bug di Chrome o è probabile che si sia verificato un problema con il mio ServiceWorker?

+0

Come fa sapere Chrome per inviare le intestazioni auth con la richiesta operaio di servizio? –

+0

@RickViscomi il servicestore no, ma la scheda dovrebbe, giusto? Il SW dovrebbe essere un midbox indifferente in questo processo, questo è quello che ho assunto. – Andrew

risposta

0

Ciò è causa di un fetch() opzione di default è purtroppo 'omit' credenziali. È necessario fetch() con {'credentials': 'same-origin'}. Guarda il GitHub pull request.

Per ora se si utilizza add() o addAll() è necessario passare un oggetto richiesta.

Esempio:

cache.addAll(
    cacheUrls.map(url => new Request(url, {credentials: 'same-origin'})) 
); 
Problemi correlati