| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // app/api/auth/me/route.js
- import { getSession } from "@/lib/auth/session";
- import { withErrorHandling, json } from "@/lib/api/errors";
- /**
- * Force dynamic execution (RHL-006):
- * - auth-related response must never be cached/shared accidentally.
- */
- export const dynamic = "force-dynamic";
- /**
- * GET /api/auth/me
- *
- * Purpose:
- * - Provide the current session identity for frontend consumers.
- *
- * Semantics (frontend-friendly):
- * - 200 with { user: null } when unauthenticated
- * - 200 with { user: { userId, role, branchId } } when authenticated
- *
- * This avoids using 401 as control-flow for basic "am I logged in?" checks.
- */
- export const GET = withErrorHandling(
- async function GET() {
- const session = await getSession();
- if (!session) {
- return json({ user: null }, 200);
- }
- return json(
- {
- user: {
- userId: session.userId,
- role: session.role,
- branchId: session.branchId ?? null,
- email: session.email ?? null,
- },
- },
- 200,
- );
- },
- { logPrefix: "[api/auth/me]" },
- );
|