bb8a96d281
Deploy to LXC / deploy (push) Successful in 21s
- Added BODY_SIZE_LIMIT=52428800 (50MB) to .env.example - handleError in hooks catches body size exceeded and returns friendly message - Client-side file size check on image upload input (alerts before submit) - adapter-node uses BODY_SIZE_LIMIT env var (default was 512KB) To fix: add BODY_SIZE_LIMIT=52428800 to .env on the server and restart. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import type { Handle, HandleServerError } from '@sveltejs/kit';
|
|
import { validateSession, setSessionCookie, deleteSessionCookie } from '$lib/server/auth/index.js';
|
|
|
|
export const handleError: HandleServerError = async ({ error }) => {
|
|
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
|
|
// Body size limit exceeded
|
|
if (message.includes('exceeds limit')) {
|
|
return {
|
|
message: 'File too large. Maximum upload size is 50MB.'
|
|
};
|
|
}
|
|
|
|
console.error('Unhandled error:', error);
|
|
return { message: 'An unexpected error occurred.' };
|
|
};
|
|
|
|
export const handle: Handle = async ({ event, resolve }) => {
|
|
const token = event.cookies.get('session');
|
|
|
|
if (token) {
|
|
const { session, user } = await validateSession(token);
|
|
|
|
if (session && user) {
|
|
event.locals.user = user;
|
|
event.locals.session = session;
|
|
|
|
// Refresh cookie if session was extended
|
|
if (session.fresh) {
|
|
setSessionCookie(event, token, session.expiresAt);
|
|
}
|
|
} else {
|
|
event.locals.user = null;
|
|
event.locals.session = null;
|
|
deleteSessionCookie(event);
|
|
}
|
|
} else {
|
|
event.locals.user = null;
|
|
event.locals.session = null;
|
|
}
|
|
|
|
return resolve(event);
|
|
};
|