Server Auth Utility (serverAuth.ts)¶
The Server Auth utility provides server-side authentication and authorization functions.
Overview¶
lib/serverAuth.ts implements server-side authentication logic with session management and user validation.
Features¶
- Session management
- User validation
- Role-based access
- Token handling
- Security measures
- Error handling
API Reference¶
Core Functions¶
async function getSession(req: NextApiRequest): Promise<Session>
async function getCurrentUser(req: NextApiRequest): Promise<User>
async function validateToken(token: string): Promise<boolean>
async function checkPermission(user: User, resource: string): Promise<boolean>
Type Definitions¶
interface Session {
user: User;
expires: Date;
accessToken: string;
}
interface User {
id: string;
email: string;
role: UserRole;
permissions: string[];
}
type UserRole = 'admin' | 'user' | 'guest';
Usage Examples¶
Session Management¶
// Get current session
const session = await getSession(req);
// Get current user
const user = await getCurrentUser(req);
// Check permissions
const canAccess = await checkPermission(user, 'documents:write');
Authorization¶
// Protect API route
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
try {
const user = await getCurrentUser(req);
if (!user) {
return res.status(401).json({ error: 'Unauthorized' });
}
// Handle request
} catch (error) {
return res.status(500).json({ error: 'Internal error' });
}
}
Security¶
- Authentication
- Token validation
- Session checks
- Role validation
- Permission checks
-
Rate limiting
-
Protection
- CSRF prevention
- XSS protection
- Session fixation
- Cookie security
- Token refresh
Error Handling¶
- Error Types
- Auth errors
- Session errors
- Permission errors
- Token errors
-
Network errors
-
Recovery
- Session refresh
- Token refresh
- Error reporting
- User feedback
Performance¶
- Optimizations
- Cache strategy
- Token caching
- Session pooling
-
Request batching
-
Best Practices
- Session limits
- Token expiry
- Cache invalidation
- Resource cleanup
Related Utilities¶
Notes¶
- Security best practices
- Session management
- Token handling
- Error recovery
- Performance tips