Files
website/server/middleware/auth.ts
2026-08-08 20:55:56 +02:00

26 lines
713 B
TypeScript

export default defineEventHandler(async (event) => {
const authHeader = getRequestHeader(event, 'authorization');
event.context.auth = null;
if (authHeader) {
try {
const [type, token] = authHeader.split(' ', 2);
if (type !== 'Bearer') {
throw new Error('Invalid token type');
}
if (!token) {
throw new Error('Invalid token');
}
const grpc = useApiGrpcWithToken(event, token);
const userData = await grpc.getUserData({});
event.context.auth = {
pid: userData.pid,
username: userData.username
};
} catch (err) {
console.error('Failed to request user data: ', err);
return; // Continue like nothing happened, further steps will validate if authed
}
}
});