diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-08-21 00:40:24 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-08-21 00:54:17 +1000 |
| commit | 9db75e240a2520eae0ffbc1f9aec757652d2ab03 (patch) | |
| tree | bee813d91f838b89dc50064ae0a5b91b88d3940b | |
| parent | d32b0c57602a6de05f736e007aee9abbe450385d (diff) | |
Initial commitauth
| -rw-r--r-- | Controllers/ApiDebugController.cs | 20 | ||||
| -rw-r--r-- | Pages/_Host.cshtml | 7 | ||||
| -rw-r--r-- | wwwroot/auth.js | 27 |
3 files changed, 54 insertions, 0 deletions
diff --git a/Controllers/ApiDebugController.cs b/Controllers/ApiDebugController.cs new file mode 100644 index 0000000..7f43e5b --- /dev/null +++ b/Controllers/ApiDebugController.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Mvc; + +namespace HyperBooru.Controllers; + +[ApiController] +[Route("/api")] +public class ApiDebugController : Controller { + private IHttpContextAccessor contextAccessor; + + public ApiDebugController(IHttpContextAccessor contextAccessor) => + this.contextAccessor = contextAccessor; + + [HttpGet("headers")] + public IActionResult GetHeaders() { + if(contextAccessor.HttpContext is null) + return Ok(); + + return Ok(contextAccessor.HttpContext.Request.Headers); + } +} 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..32408cd --- /dev/null +++ b/wwwroot/auth.js @@ -0,0 +1,27 @@ +console.log('Auth service activated'); +self.addEventListener('activate', event => { + console.log('Claiming clients...'); + event.waitUntil(self.clients.claim()); +}); +self.addEventListener('fetch', async event => { + console.log('Intercepted fetch request'); + const url = new URL(event.request.url); + + if(!url.pathname.startsWith('/poo/')) + return; + + const headers = new Headers(event.request.headers); + headers.set('X-PeePee-PooPoo', 'fcukme'); + + try { + const newRequest = new Request('/api/headers', { + headers: headers, + mode: 'cors' + }); + + event.respondWith(fetch(newRequest)); + } catch(error) { + debugger; + event.respondWith(fetch(event.request)); + } +});
\ No newline at end of file |
