- From: francescoterrell <notifications@github.com>
- Date: Sun, 19 Jun 2022 03:25:20 -0700
- To: w3c/ServiceWorker <ServiceWorker@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/ServiceWorker/issues/1648@github.com>
I have developed a javascript application with a custom service worker and facing a problem fetching the service worker file behind authentication.
My application is deployed behind a cookie based authentication (after login, the user has a cookie which is checked by every request). This is fine for for fetching all resources, except the service-worker file, which the browser doesn't doesn't send any cookies.
Here is miminal example reproducing my issue:
**backend: index.js**
```
// Service worker file
app.get('/test.js', (req,res) => {
if(req.cookies.token != null) {
res.sendFile('./public/test.js')
}
else {
res.sendStatus(401)
}
})
// Index page
app.get('/', (req, res) => {
// initial login check goes here
res.cookie('token',"<user token>").sendFile('./public/index.html')
})
```
**frontend: index.html**
```
<body>
<h1>Test</h1>
// Doesn't work with the auth
<script>
const registration = await navigator.serviceWorker.register('test.js')
console.log(registration)
</script>
// Works with the auth
<script src="test2.js"></script>
</body>
```
When the request is made, the browser doesn't attach any cookie information:

Why doesn't the browser treat the service-worker request as everything else? Am I missing a flag similiar to fetch credentials option?
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/ServiceWorker/issues/1648
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/ServiceWorker/issues/1648@github.com>
Received on Sunday, 19 June 2022 10:25:33 UTC