2016-11-17 11 views
1

ログインページを持つWebアプリケーションにサービスワーカーキャッシュを実装する際に問題があります。サービスワーカーのログインページ

ユーザーはログインし、サービスワーカーのインストールとアクティブ化が行われますが、ユーザーがリンクをクリックすると、既にログインしていてもログインページに戻ります。

誰かが正しい方向に私を向けることができますか?事前に

感謝

答えて

3

あなたはおそらく、ユーザがログインする前にユーザーの許可を必要とするページをキャッシュしようとしている間違って作られたことはだから何が起こるかです:ブラウザはルートを取得しようとしますが、サーバーユーザーがログインしていないため、ログインページになりますあなたはおそらく実行する必要があり

何を:。

  1. あなたはあなたのユーザーがアプリにログインしていることを待ちます。
  2. サービスワーカーを登録するよりも、ユーザーの1人がログに記録されます。
  3. ログに記録されたユーザーとしてページをキャッシュするには、Cookie情報with credentials: includeを送信する必要があります。それはこのようなものになります:

`` ` /* sw.js */

var cacheName = 'yourCacheName-vx.x.x'; 

// The route for which you need to be logged in. It's a Request Object. 
var appRequest = new Request('/da-private-route', { credentials: 'include' }); 

var urlsToCache = [ 
    appRequest, // you add it to your things to cache 
    '/manifest.json', 
    '/css/styles.css', 
    '/js/scripts.js',  
    // other resources… 
]; 

// Installation. 
self.addEventListener('install', e => { 
    e.waitUntil(
     self.skipWaiting().then(function() { 
      caches.open(cacheName).then(function(cache) { 
       return cache.addAll(urlsToCache); 
      }) 
     }) 
    ); 
}); 

/* [continue your sw…] */ 

` ``

+0

こんにちは@Kylieウォーカー、私の答えは助けたのですか?はいの場合は、それを有効な回答としてマークすることは親切です。 –

+0

はい、ありがとう –

関連する問題