refactor(backend): use shared optional jwt context
This commit is contained in:
parent
f9439f4519
commit
8cc21d8586
@ -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' });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user