refactor(backend): use shared optional jwt context

This commit is contained in:
saravanakumardb1 2026-03-06 13:38:18 -08:00
parent f9439f4519
commit 8cc21d8586

View File

@ -6,7 +6,7 @@
* Port: 4011 (configurable via PORT env var). * Port: 4011 (configurable via PORT env var).
*/ */
import { createServiceApp, startService } from '@bytelyst/fastify-core'; import { createServiceApp, registerOptionalJwtContext, startService } from '@bytelyst/fastify-core';
import { timerRoutes } from './modules/timers/routes.js'; import { timerRoutes } from './modules/timers/routes.js';
import { routineRoutes } from './modules/routines/routes.js'; import { routineRoutes } from './modules/routines/routes.js';
import { householdRoutes } from './modules/households/routes.js'; import { householdRoutes } from './modules/households/routes.js';
@ -37,15 +37,11 @@ const app = await createServiceApp({
metrics: true, metrics: true,
}); });
app.addHook('onRequest', async req => { await registerOptionalJwtContext(app, {
const auth = req.headers.authorization; verifyToken: async (token: string) => {
if (!auth?.startsWith('Bearer ')) return; const { payload } = await jwtVerify(token, jwtSecret, { issuer: 'bytelyst-platform' });
try { return payload as unknown as JwtPayload;
const { payload } = await jwtVerify(auth.slice(7), jwtSecret, { issuer: 'bytelyst-platform' }); },
req.jwtPayload = payload as unknown as JwtPayload;
} catch {
// Token invalid/expired — leave jwtPayload undefined.
}
}); });
await app.register(timerRoutes, { prefix: '/api' }); await app.register(timerRoutes, { prefix: '/api' });