monacousa-portal/server/api/auth/login.get.ts

18 lines
443 B
TypeScript

import { randomBytes } from 'crypto';
export default defineEventHandler(async (event) => {
const keycloak = createKeycloakClient();
const state = randomBytes(32).toString('hex');
// Store state in session for verification
setCookie(event, 'oauth-state', state, {
httpOnly: true,
secure: true,
maxAge: 600, // 10 minutes
});
const authUrl = keycloak.getAuthUrl(state);
return sendRedirect(event, authUrl);
});