import { Router } from 'express'; import { body } from 'express-validator'; import { validateRequest } from '../middleware/validateRequest'; import { authController } from '../controllers/authController'; import { authMiddleware } from '../middleware/authMiddleware'; const router = Router(); // Register router.post('/register', [ body('username').isLength({ min: 3, max: 30 }).matches(/^[a-zA-Z0-9_]+$/), body('password').isLength({ min: 8 }), body('confirmPassword').isLength({ min: 8 }).custom((value, { req }) => { if (value !== req.body.password) { throw new Error('密码和确认密码不匹配'); } return true; }), validateRequest ], authController.register); // Login router.post('/login', [ body('username').isLength({ min: 3, max: 30 }), body('password').notEmpty(), validateRequest ], authController.login); // Logout router.post('/logout', authMiddleware, authController.logout); // Get current user router.get('/me', authMiddleware, authController.getCurrentUser); // Refresh token router.post('/refresh', authController.refreshToken); // Debug session (for development) router.get('/debug-session', authMiddleware, authController.debugSession); export default router;