Files
website/server/middleware/auth.ts
2026-08-12 21:07:49 +02:00

30 lines
894 B
TypeScript

export default defineEventHandler(async (event) => {
const authHeader = getRequestHeader(event, 'authorization');
setAuthContext(event, 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 = useLegacyApiGrpcWithToken(event, token);
const userData = await grpc.getUserData({});
setAuthContext(event, {
pid: userData.pid,
username: userData.username,
token: token,
accessLevel: userData.accessLevel,
email: userData.emailAddress,
stripeSubscriptionId: userData.connections?.stripe?.subscriptionId ?? null
});
} catch (err) {
console.error('Failed to request user data: ', err);
return; // Continue like nothing happened, further steps will validate if authed
}
}
});