mirror of
https://github.com/rgrgogu/new_starr.git
synced 2026-09-27 00:12:54 +08:00
29 lines
1.3 KiB
JavaScript
29 lines
1.3 KiB
JavaScript
/***********************************************************************************************************************************************************************
|
|
* File Name: media.routes.js (public)
|
|
* Type of Program: Routes
|
|
* Author: Kenneth Obsequio (@lash0000)
|
|
* Date Created: Jun. 22, 2026
|
|
***********************************************************************************************************************************************************************/
|
|
"use strict";
|
|
|
|
const rateLimit = require("express-rate-limit");
|
|
const router = require("express").Router();
|
|
const ctrl = require("../../controllers/public/media.controller");
|
|
|
|
// 60 token requests per IP per 15 min — generous enough for a page with many assets
|
|
// but still blocks scrapers from bulk-fetching tokens
|
|
const publicTokenLimiter = rateLimit({
|
|
windowMs: 15 * 60 * 1000,
|
|
max: 60,
|
|
keyGenerator: (req) => req.ip,
|
|
standardHeaders: true,
|
|
legacyHeaders: false,
|
|
message: { status: "error", message: "Too many requests. Please try again later." },
|
|
});
|
|
|
|
// Supports both GET (query string) and POST (body) for flexibility
|
|
router.get("/token", publicTokenLimiter, ctrl.issueToken);
|
|
router.post("/token", publicTokenLimiter, ctrl.issueToken);
|
|
|
|
module.exports = router;
|