2016-11-17 153 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

是的,谢谢 –