2016-11-17 214 views
1

我在實現具有登錄頁面的Web應用程序上實施服務工作者緩存時出現問題。服務工作者登錄頁面

會發生什麼是用戶登錄,服務工作人員安裝並激活,但是當用戶單擊鏈接時,即使他們已經登錄,他們也會將其帶回登錄頁面!

任何人都可以指向正確的工作方向嗎?

提前感謝

回答

3

什麼你可能做出錯誤是試圖緩存需要用戶權限的已登錄用戶之前一個頁面,以便發生的事情是:瀏覽器嘗試檢索路由,但服務器給人的登錄頁面,因爲用戶沒有登錄

什麼你可能需要做的:

  1. 你等着您的用戶登錄到您的應用程序。
  2. 一個用戶被記錄,比你註冊你的服務工作者。
  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

是的,謝謝 –