// Auteur : Simon-Pierre Boucher — contact@spboucher.ai // Départ SSO « Se connecter avec KA » : redirige vers le hub d'identité du // Groupe KA (groupe-ka.com) avec un state opaque signé localement (le state // transporte aussi la destination `next` de retour — chemin local seulement). import { NextRequest, NextResponse } from "next/server"; import { CLIENT_ID, KA_BASE_URL, KA_HUB_URL, newState, sanitizeNext } from "@/lib/ka-auth"; export function GET(req: NextRequest) { const next = sanitizeNext(req.nextUrl.searchParams.get("next")); const state = newState(next); if (!state || !process.env.KA_SSO_SECRET) { return NextResponse.json( { error: "SSO KA ID non configuré (KA_SSO_SECRET manquant)" }, { status: 503 }, ); } const url = new URL(`${KA_HUB_URL}/sso/authorize`); url.searchParams.set("client_id", CLIENT_ID); url.searchParams.set("redirect_uri", `${KA_BASE_URL}/api/auth/ka/callback`); url.searchParams.set("state", state); return NextResponse.redirect(url); }