Sign in again through a front-door proxy when its session ends #63

Merged
jcoffey-dev merged 1 commits from fix/proxy-reauth into main 2026-10-10 01:41:20 +00:00
1 Commits
Author SHA1 Message Date
jcoffey-dev 4ad8ff050c Sign in again through a front-door proxy when its session ends
ci / node (pull_request) Skipped
ci / version (pull_request) Skipped
ci / docker-build (pull_request) Skipped
ci / publish (pull_request) Skipped
github/ci (branch) GitHub Actions
ci / github (pull_request) Successful in 2m4s
ci / announce (pull_request) Skipped
Behind Cloudflare Access or a similar proxy, an expired proxy session
answers every API call with a redirect to the proxy's login on another
origin. A fetch can't follow that, so it failed as a network error, and
an installed app never got out of it: it opens on an app route the
service worker serves from its kept copy, so nothing navigated to the
network for the proxy to catch (coffey-labs/ihasmail#47).

When an API call fails at the network, or comes back redirected to a
page that isn't ours, the app now asks /api/health without following
redirects. A redirect or an HTML answer means the proxy is asking, and
the root is opened for real, which the service worker always sends to
the network. At most once a minute, so a misconfigured proxy can't loop.

Port of coffey-labs/ihasmail#52, which fixes coffey-labs/ihasmail#47.

(cherry picked from commit 18a661144ed655412f52cd709e7d6530a8ebf994)
2026-10-09 17:34:17 -07:00