- From: RakeshLchanSarma <notifications@github.com>
- Date: Wed, 15 Nov 2017 15:59:29 +0000 (UTC)
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/issues/1226@github.com>
Hi Team, I am using PWA in my angular-5 application, supported by angular-cli and I am using Keycloak for login authentication. The application works well offline, but one issue I am facing. While reloading the authenticator tries to find the login status from the Keycloak server and fails due to the internet connection. Below is my service-worker: ` var dataCacheName = 'resourceAllo-v1'; var cacheName = 'resourceAlloPWA-final-1'; var filesToCache = [ '/', '/index.html', '/favicon.png', './app/app.component.html', ]; self.addEventListener('install', function(e) { console.log('[ServiceWorker] Install'); e.waitUntil( caches.open(cacheName).then(function(cache) { console.log('[ServiceWorker] Caching app shell'); return cache.addAll(filesToCache); }) ); }); self.addEventListener('activate', function(e) { console.log('[ServiceWorker] Activate'); e.waitUntil( caches.keys().then(function(keyList) { return Promise.all(keyList.map(function(key) { if (key !== cacheName && key !== dataCacheName) { console.log('[ServiceWorker] Removing old cache', key); return caches.delete(key); } })); }) ); return self.clients.claim(); }); self.addEventListener('opaqueredirect', function(e) { debugger console.log('[Service Worker] redirect ', e); }) self.addEventListener('fetch', function(e) { console.log('[Service Worker] Fetch', e.request.url); var dataUrl = 'https://keycloak-server-connect/userinfo'; var tokenUrl = 'https://keycloak-server-connect/protocol/openid-connect/token'; var cssUrl = 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'; var keycloakUrl = 'https://keycloak-server-connect/auth/realms/abc/protocol/openid-connect/auth?client_id=service&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2F&state=de9b09b0-d14e-408c-bf11-90c461861a57&nonce=a390644f-f3ca-4aff-be76-a23ef130e101&response_mode=fragment&response_type=code&scope=openid'; if (e.request.url.indexOf(dataUrl) > -1) { e.respondWith( caches.open(cacheName).then(function(cache) { return fetch(e.request).then(function(response) { cache.put(e.request.url, response.clone()); return response; }); }) ); } else if (e.request.url.indexOf(cssUrl) > -1) { e.respondWith( caches.open(cacheName).then(function(cache) { return fetch(e.request).then(function(response) { cache.put(e.request.url, response.clone()); return response; }); }) ); } else if (e.request.url.indexOf(keycloakUrl) > -1) { e.respondWith( caches.open(cacheName).then(function(cache) { return fetch(e.request).then(function(response) { cache.put(e.request.url, response.clone()); return response; }); }) ) } else { var updateCache = function(request) { if (request.url != dataUrl && request.url != tokenUrl) { return caches.open(cacheName).then(function(cache) { return fetch(request).then(function(response) { console.log('[PWA Builder] add page to offline ' + response.url) return cache.put(request, response); }); }); } }; e.waitUntil(updateCache(e.request.clone())); e.respondWith( caches.match(e.request).then(function(response) { return response || fetch(e.request); }).catch(function() { console.log('[Service Worker] event', e); // If both fail, show a generic fallback: return caches.match('/offline.html'); }) ) } });` And my main.js: `if (navigator.serviceWorker.controller) { console.log('[PWA Builder] active service worker found, no need to register') } else { navigator.serviceWorker.register('service-worker.js', { scope: './' }).then(function(reg) { console.log('Service worker has been registered for scope:' + reg.scope); }); }` Please help me out on this. Let me know if any info is needed. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/w3c/ServiceWorker/issues/1226
Received on Wednesday, 15 November 2017 15:59:57 UTC