diff options
| author | 2025-09-21 01:13:25 +0000 | |
|---|---|---|
| committer | 2025-09-21 01:13:25 +0000 | |
| commit | 9d26295c65d2c68ae5012bea1b20ea7e45e93325 (patch) | |
| tree | 3616eccafc248e25eb7f0e8c93e15b2863e8a502 /src/hooks.server.ts | |
| parent | 11877824040ed2b92dab0efe04d7b24c64fa39cd (diff) | |
| download | crunched-master.tar.gz crunched-master.tar.bz2 crunched-master.tar.lz crunched-master.zip | |
Diffstat (limited to 'src/hooks.server.ts')
| -rw-r--r-- | src/hooks.server.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 05b8b18..4c11926 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -12,6 +12,16 @@ export const authHandler = ( let refreshToken = event.cookies.get('oid__refresh_token'); let accessToken = event.cookies.get('oid__access_token'); let expiry = Number(event.cookies.get('oid__expires_at')); + let tokenSource = accessToken ? 'cookie' : 'none'; + if (!accessToken) { + const auth = event.request.headers.get('Authorization'); + if (auth) { + if (auth.startsWith('Bearer')) { + accessToken = auth.substring(6).trimStart(); + tokenSource = 'header/bearer'; + } + } + } if ( refreshToken && (!accessToken || isNaN(expiry) || expiry - 60 * 1000 >= Date.now()) @@ -41,6 +51,7 @@ export const authHandler = ( auth.unsetCookies(event.cookies); return null; } + expiry = expiry ?? introspectionResponse.exp; return { tokens: { scope: introspectionResponse.scope, @@ -57,7 +68,8 @@ export const authHandler = ( auth.unsetCookies(event.cookies); throw e; }), - __is_session: 1, + __isSession: 1, + __tokenSource: tokenSource, }; } catch (error) { return null; |