SPB Git

Repository Public

route.ts 1.1 KB 27 lines typescript

1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Vérification serveur-à-serveur d'un jeton API personnel (kapi_…).3// Utilisé par api-ka pour authentifier les appels Bearer de son API produit.4//   GET ?client_id&token&ts&sig   sig = HMAC(secret_client, `${client_id}.${token}.${ts}`)5// Réponse : { valid, ka_id?, name?, email?, role? }6import { NextRequest, NextResponse } from "next/server";7import { findUserByApiToken } from "@/lib/db";8import { verifyClientSig } from "@/lib/sso";910export async function GET(req: NextRequest) {11  const q = req.nextUrl.searchParams;12  const clientId = q.get("client_id") ?? "";13  const token = q.get("token") ?? "";14  // même schéma HMAC que /api/sso/profile : le jeton prend la place du ka_id15  if (!verifyClientSig(clientId, token, q.get("ts") ?? "", q.get("sig") ?? ""))16    return NextResponse.json({ error: "signature invalide" }, { status: 401 });17  const user = findUserByApiToken(token);18  if (!user || !user.ka_id) return NextResponse.json({ valid: false });19  return NextResponse.json({20    valid: true,21    ka_id: user.ka_id,22    name: user.name,23    email: user.email,24    role: user.role,25  });26}27
Files main
Menu

Theme