7

私はカジュアルなお尻から目を離して開発の初期段階でサイトを保護しようとしています。基本的なHTTPS over authは妥当な解決策のように思えましたが、サービス担当者の存在がChromeでの作業を妨げるようです。これは、サービス担当者がすでにインストールされているが、ブラウザーに目的のレルムに対するアクティブな権限がない場合に特に発生します。サービススタッフがHTTP基本認証と競合していますか?

Chromeは応答がネットワークのタイムラインで401

401 in Network timeline

であったことを示している。また、ブラウザのタブを右レスポンスヘッダを受信して​​いることを示しています。

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 

しかし、それはありませんログインのプロンプトを表示すると、401レスポンスのコンテンツ本文が表示されます。

これはChromeのバグですか、それともServiceWorkerに問題がありますか?

+0

はどのようにChromeがサービスワーカーの要求に認証ヘッダーを送信するために知っているのですか? –

+0

@RickViscomiサービス担当者はいないが、タブは正しくなければならない? SWは、このプロセスでは邪魔されないミドルボックスでなければなりません。それは私が想定したものです。 – Andrew

答えて

0

これが原因'omit'資格情報に、残念ながらデフォルトfetch()オプションです。 fetch(){'credentials': 'same-origin'}が必要です。 GitHub pull requestを見てください。

今のところadd()またはaddAll()を使用している場合は、リクエストオブジェクトを渡す必要があります。

例:

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