Marketplace inversée (Next.js 16 App Router + Supabase Cloud) : auth, schéma + RLS, publication de besoins avec upload d'images, feed avec filtres, offres, acceptation via RPC, messagerie temps réel, dashboards, et Dockerfile pour déploiement Coolify.
22 lines
725 B
TypeScript
22 lines
725 B
TypeScript
import { type EmailOtpType } from "@supabase/supabase-js";
|
|
import { type NextRequest } from "next/server";
|
|
import { redirect } from "next/navigation";
|
|
import { createClient } from "@/lib/supabase/server";
|
|
|
|
export async function GET(request: NextRequest) {
|
|
const { searchParams } = new URL(request.url);
|
|
const token_hash = searchParams.get("token_hash");
|
|
const type = searchParams.get("type") as EmailOtpType | null;
|
|
const next = searchParams.get("next") ?? "/dashboard/my-needs";
|
|
|
|
if (token_hash && type) {
|
|
const supabase = await createClient();
|
|
const { error } = await supabase.auth.verifyOtp({ type, token_hash });
|
|
if (!error) {
|
|
redirect(next);
|
|
}
|
|
}
|
|
|
|
redirect("/auth/auth-code-error");
|
|
}
|