2026-01-26 11:15:52 -05:00

32 lines
806 B
TypeScript

import { kratosServerClient } from '$lib/kratos-server';
import { redirect } from '@sveltejs/kit';
import { ADMIN_USER_ID } from '$env/static/private';
import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ cookies }) => {
const sessionToken = cookies.get('ory_kratos_session');
if (!sessionToken) {
redirect(303, '/login?return_to=/admin');
}
try {
const { data: session } = await kratosServerClient.toSession({
cookie: `ory_kratos_session=${sessionToken}`
});
// Check if the user is the admin
if (session.identity?.id !== ADMIN_USER_ID) {
redirect(303, '/?error=unauthorized');
}
return {
session,
isAdmin: true
};
} catch {
// If session validation fails, redirect to login
redirect(303, '/login?return_to=/admin');
}
};