diff options
feat: oidc attempt 1
Diffstat (limited to 'src/hooks.server.ts')
| -rw-r--r-- | src/hooks.server.ts | 32 |
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); +}; |