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.
19 lines
586 B
TypeScript
19 lines
586 B
TypeScript
import "server-only";
|
|
import { cache } from "react";
|
|
import { redirect } from "next/navigation";
|
|
import { createClient } from "@/lib/supabase/server";
|
|
|
|
export const getCurrentUser = cache(async () => {
|
|
const supabase = await createClient();
|
|
const { data } = await supabase.auth.getClaims();
|
|
const claims = data?.claims;
|
|
if (!claims) return null;
|
|
return { id: claims.sub as string, email: claims.email as string | undefined };
|
|
});
|
|
|
|
export const verifySession = cache(async () => {
|
|
const user = await getCurrentUser();
|
|
if (!user) redirect("/auth/login");
|
|
return user;
|
|
});
|