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
-
Route Protection
- Middleware-based protection
- Server-side session validation
- Client-side session checks
- Automatic redirects
-
Session Management
- Secure session storage
- Session timeout
- Automatic session refresh
- Cross-subdomain support
-
Access Control
- Role-based access
- Permission checks
- Resource ownership
- API route protection
Best Practices
-
Route Organization
- Use route groups
- Separate public/protected routes
- Consistent naming
- Clear structure
-
Error Handling
- Handle loading states
- Show error messages
- Provide fallbacks
- Log errors
-
Security
- Validate sessions
- Check permissions
- Handle edge cases
- Monitor access
Common Issues & Solutions
-
Session Issues
- Check cookie settings
- Verify session storage
- Handle session expiry
- Clear invalid sessions
-
Redirect Loops
- Check middleware matchers
- Verify redirect logic
- Handle edge cases
- Monitor redirects
-
Permission Issues
- Verify role checks
- Check resource access
- Handle missing permissions
- Log access attempts