| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // 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,
- },
- },
- 200
- );
- },
- { logPrefix: "[api/auth/me]" }
- );
|