Skip to main content

Middleware Setup

1. Configure Protected client routes/pages in apps/web/src/middleware.ts

2. Protected API Routes in apps/server/src/routers/index.ts

Client-Side Protection

1. Protected Page Component

2. Protected Layout

Route Groups

The boilerplate uses Next.js route groups to organize protected and public routes:

2. Protected Component

Security Features

  1. Route Protection
    • Middleware-based protection
    • Server-side session validation
    • Client-side session checks
    • Automatic redirects
  2. Session Management
    • Secure session storage
    • Session timeout
    • Automatic session refresh
    • Cross-subdomain support
  3. Access Control
    • Role-based access
    • Permission checks
    • Resource ownership
    • API route protection

Best Practices

  1. Route Organization
    • Use route groups
    • Separate public/protected routes
    • Consistent naming
    • Clear structure
  2. Error Handling
    • Handle loading states
    • Show error messages
    • Provide fallbacks
    • Log errors
  3. Security
    • Validate sessions
    • Check permissions
    • Handle edge cases
    • Monitor access

Common Issues & Solutions

  1. Session Issues
    • Check cookie settings
    • Verify session storage
    • Handle session expiry
    • Clear invalid sessions
  2. Redirect Loops
    • Check middleware matchers
    • Verify redirect logic
    • Handle edge cases
    • Monitor redirects
  3. Permission Issues
    • Verify role checks
    • Check resource access
    • Handle missing permissions
    • Log access attempts

Next Steps