feat(api): apply rate limiters to game and lobby routes

Wire gameLimiter into gameRouter and lobbyLimiter into lobbyRouter.
Both run after requireAuth since they key by req.session.user.id.
This commit is contained in:
lila 2026-04-23 20:36:36 +02:00
parent e6f4a39dad
commit 9ab2bc3d0e
2 changed files with 5 additions and 0 deletions

View file

@ -2,9 +2,12 @@ import express from "express";
import type { Router } from "express"; import type { Router } from "express";
import { createGame, submitAnswer } from "../controllers/gameController.js"; import { createGame, submitAnswer } from "../controllers/gameController.js";
import { requireAuth } from "../middleware/authMiddleware.js"; import { requireAuth } from "../middleware/authMiddleware.js";
import { gameLimiter } from "../middleware/rateLimiters.js";
export const gameRouter: Router = express.Router(); export const gameRouter: Router = express.Router();
gameRouter.use(requireAuth); gameRouter.use(requireAuth);
gameRouter.use(gameLimiter);
gameRouter.post("/start", createGame); gameRouter.post("/start", createGame);
gameRouter.post("/answer", submitAnswer); gameRouter.post("/answer", submitAnswer);

View file

@ -5,10 +5,12 @@ import {
joinLobbyHandler, joinLobbyHandler,
} from "../controllers/lobbyController.js"; } from "../controllers/lobbyController.js";
import { requireAuth } from "../middleware/authMiddleware.js"; import { requireAuth } from "../middleware/authMiddleware.js";
import { lobbyLimiter } from "../middleware/rateLimiters.js";
export const lobbyRouter: Router = express.Router(); export const lobbyRouter: Router = express.Router();
lobbyRouter.use(requireAuth); lobbyRouter.use(requireAuth);
lobbyRouter.use(lobbyLimiter);
lobbyRouter.post("/", createLobbyHandler); lobbyRouter.post("/", createLobbyHandler);
lobbyRouter.post("/:code/join", joinLobbyHandler); lobbyRouter.post("/:code/join", joinLobbyHandler);