26 lines
541 B
TypeScript
26 lines
541 B
TypeScript
import jwt from 'jsonwebtoken';
|
|
import * as dotenv from 'dotenv';
|
|
|
|
dotenv.config({ path: '.env' });
|
|
|
|
export const handle = async ({ event, resolve }) => {
|
|
const JWT = event.cookies.get('jwt');
|
|
|
|
if (process.env.JWT_SECRET === undefined) {
|
|
throw new Error('JWT_SECRET not defined');
|
|
}
|
|
|
|
if (!JWT) {
|
|
event.locals.user = null;
|
|
} else {
|
|
try {
|
|
event.locals.user = jwt.verify(JWT, process.env.JWT_SECRET);
|
|
} catch {
|
|
event.cookies.delete('jwt', { path: '/' });
|
|
event.locals.user = null;
|
|
}
|
|
}
|
|
|
|
return await resolve(event);
|
|
};
|