Trouve-KA — moteur de recherche web indépendant, Québec-first. Crawler distribué, index OpenSearch, ranking bilingue, galerie d'images. En prod : www.trouve-ka.com
Python 51.9%
TypeScript 32.7%
JavaScript 4.8%
CSS 4.1%
Shell 2.9%
HTML 1.8%
SQL 1.5%
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Départ SSO « Se connecter avec KA » : redirige vers le hub d'identité du3// Groupe KA (groupe-ka.com) avec un state opaque signé localement (le state4// transporte aussi la destination `next` de retour — chemin local seulement).5import { NextRequest, NextResponse } from "next/server";6import { CLIENT_ID, KA_BASE_URL, KA_HUB_URL, newState, sanitizeNext } from "@/lib/ka-auth";78export function GET(req: NextRequest) {9 const next = sanitizeNext(req.nextUrl.searchParams.get("next"));10 const state = newState(next);11 if (!state || !process.env.KA_SSO_SECRET) {12 return NextResponse.json(13 { error: "SSO KA ID non configuré (KA_SSO_SECRET manquant)" },14 { status: 503 },15 );16 }17 const url = new URL(`${KA_HUB_URL}/sso/authorize`);18 url.searchParams.set("client_id", CLIENT_ID);19 url.searchParams.set("redirect_uri", `${KA_BASE_URL}/api/auth/ka/callback`);20 url.searchParams.set("state", state);21 return NextResponse.redirect(url);22}23