Authentication & Authorization Patterns
Authentication & Authorization Patterns
Protected Routes
Pattern: Middleware-based route protection
Requirements:
-
Check authentication in Next.js middleware
-
Redirect to login if unauthenticated
-
Check role permissions for restricted routes
-
Store session in httpOnly cookies
Role-Based UI Rendering
Pattern: Conditional rendering based on user roles
Example:
import { useSession } from '@/lib/auth';
function Dashboard() {
const { user } = useSession();
return (
<>
{user.roles.includes('admin') && <AdminPanel />}
{user.roles.includes('customer') && <CampaignDashboard />}
{user.roles.includes('agency') && <AgencyCommandCenter />}
</>
);
}