У меня проблема с реализацией кэша рабочего сервиса в веб-приложении, которое имеет страницу входа.
Что происходит, пользователь входит в систему, сервисный работник устанавливает и активирует, но затем, когда пользователь нажимает на ссылку, он возвращает их обратно на страницу входа, даже если они уже вошли в систему!
Кто-нибудь может указать мне правильное направление для обхода?
Спасибо заранее
Вероятно, вы ошиблись, пытаясь кэшировать страницу, для которой требуется разрешение пользователя, прежде чем пользователь вошел в систему. Так что происходит: браузер пытается получить маршрут, но сервер выдает страницу входа, потому что пользователь не вошел в систему.
Что вам, вероятно, нужно сделать:
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…] */
« `
Других решений пока нет …