7b997dc354
- Migrated from Bun/Hono to modern SvelteKit tech stack - Implemented complete authentication module (Azure MSAL + PocketBase) - Created 5 API endpoints for auth operations (config, graph token, validate, refresh, compare) - Built interactive Svelte dashboard with mobile optimization (iPhone 16) - Added Node.js adapter (@sveltejs/adapter-node) for production deployment - Integrated Tailwind CSS with responsive design - Fixed orchestrator to spawn Mode1Svelte with Node.js on port 3005 - Updated systemd service (job-info-test.service) to start orchestrator on port 3006 - Port configuration locked: 3005 = Mode1Svelte, 3006 = Orchestrator - Full TypeScript type safety throughout application - Services auto-managed by orchestrator with systemd integration
40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import { json, type RequestHandler } from '@sveltejs/kit';
|
|
import { BackendAuth } from '$lib/auth/backend';
|
|
|
|
const backendAuth = new BackendAuth(
|
|
{
|
|
clientId: process.env.CLIENT_ID,
|
|
tenantId: process.env.TENANT_ID,
|
|
clientSecret: process.env.CLIENT_SECRET,
|
|
},
|
|
process.env.PB_DB
|
|
);
|
|
|
|
export const POST: RequestHandler = async ({ request }) => {
|
|
try {
|
|
const body = await request.json();
|
|
const token = body.pbToken;
|
|
|
|
if (!token) {
|
|
return json({ valid: false, error: 'No token provided' }, { status: 400 });
|
|
}
|
|
|
|
const isValid = await backendAuth.pbValidator.validateUserToken(token);
|
|
const user = isValid ? await backendAuth.pbValidator.getUserRecord(token) : null;
|
|
|
|
return json({
|
|
valid: isValid,
|
|
user: user ? {
|
|
id: user.id,
|
|
email: user.email,
|
|
name: user.name,
|
|
} : null,
|
|
});
|
|
} catch (error) {
|
|
return json(
|
|
{ valid: false, error: error instanceof Error ? error.message : 'Validation failed' },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
};
|