aboutsummaryrefslogtreecommitdiffstats
path: root/src/hooks.server.ts
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-19 20:40:19 +0000
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-19 20:40:19 +0000
commit7fdaea73c5c67565202e19d6182fc215427919c3 (patch)
treec69e266fe672cba5f8bffd5f53e93b0efab65e9c /src/hooks.server.ts
downloadcrunched-7fdaea73c5c67565202e19d6182fc215427919c3.tar.gz
crunched-7fdaea73c5c67565202e19d6182fc215427919c3.tar.bz2
crunched-7fdaea73c5c67565202e19d6182fc215427919c3.tar.lz
crunched-7fdaea73c5c67565202e19d6182fc215427919c3.zip

feat: oidc attempt 1

Diffstat (limited to 'src/hooks.server.ts')
-rw-r--r--src/hooks.server.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
new file mode 100644
index 0000000..2fe3744
--- /dev/null
+++ b/src/hooks.server.ts
@@ -0,0 +1,32 @@
+import * as auth from './lib/auth.server';
+import * as client from 'openid-client';
+
+// https://svelte.dev/docs/kit/hooks#Server-hooks-handle
+export const handle = ({ event, resolve }) => {
+ event.locals.auth = async () => {
+ const accessToken = event.cookies.get('oid__access_token');
+ const sub = event.cookies.get('oid__sub');
+ console.warn({ accessToken, sub });
+ if (accessToken && sub) {
+ try {
+ const userInfo = await client
+ .fetchUserInfo(await auth.getConfig(), accessToken, sub)
+ .catch((e) => {
+ console.warn(e);
+
+ return null;
+ });
+ console.warn({
+ userInfo,
+ accessToken,
+ sub,
+ });
+ } catch (error) {}
+ } else if (accessToken || sub) {
+ event.cookies.delete('access-token', { path: '/' });
+ event.cookies.delete('sub', { path: '/' });
+ }
+ return null;
+ };
+ return resolve(event);
+};