summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Pages/_Host.cshtml7
-rw-r--r--wwwroot/auth.js28
2 files changed, 35 insertions, 0 deletions
diff --git a/Pages/_Host.cshtml b/Pages/_Host.cshtml
index 28ff24c..186f4f9 100644
--- a/Pages/_Host.cshtml
+++ b/Pages/_Host.cshtml
@@ -16,6 +16,13 @@
<script type="text/javascript" src="/js/dialog.js"></script>
<script type="text/javascript" src="/js/keyboard.js"></script>
<script type="text/javascript" src="/js/mobile.js"></script>
+ <script type="text/javascript">
+ if('serviceWorker' in navigator) {
+ navigator.serviceWorker.register('/auth.js', { scope: '/' })
+ .then((r) => console.log('Service worker registered with scope: ', r.scope))
+ .catch((error) => console.error('Service worker registration failed: ', error));
+ }
+ </script>
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
<body>
diff --git a/wwwroot/auth.js b/wwwroot/auth.js
new file mode 100644
index 0000000..28dd63b
--- /dev/null
+++ b/wwwroot/auth.js
@@ -0,0 +1,28 @@
+console.log('Auth service activated');
+self.addEventListener('activate', event => {
+ console.log('Claiming clients...');
+ event.waitUntil(self.clients.claim());
+});
+self.addEventListener('fetch', event => {
+ console.log('Intercepted fetch request');
+ const url = new URL(event.request.url);
+
+ if(!url.pathname.startsWith('/api/'))
+ return;
+
+ event.respondWith((async () => {
+ const headers = new Headers(event.request.headers);
+ headers.set('X-PeePee-PooPoo', 'fcukme');
+
+ try {
+ const newRequest = new Request(event.request, {
+ headers: headers,
+ mode: 'cors'
+ });
+
+ return fetch(newRequest);
+ } catch(error) {
+ return fetch(event.request);
+ }
+ }));
+}); \ No newline at end of file