Files
freeCodeCamp/api/plugins/session-auth.ts
Niraj Nandish 4769a448e1 feat(api): sessions management (#49499)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-03-09 20:36:33 +05:30

26 lines
614 B
TypeScript

import { FastifyPluginCallback, onRequestHookHandler } from 'fastify';
import fp from 'fastify-plugin';
const sessionAuth: FastifyPluginCallback = (fastify, _opts, done) => {
const authenticateSession: onRequestHookHandler = (req, res, done) => {
if (!req.session.user) {
res.statusCode = 401;
void res.send({ msg: 'Unauthorized' });
} else {
done();
}
};
fastify.decorate('authenticateSession', authenticateSession);
done();
};
declare module 'fastify' {
interface FastifyInstance {
authenticateSession: onRequestHookHandler;
}
}
export default fp(sessionAuth);