Files

25 lines
1.4 KiB
JavaScript

/***********************************************************************************************************************************************************************
* File Name: media.routes.js (client)
* Type of Program: Routes
* Author: Kenneth Obsequio (@lash0000)
* Date Created: Jun. 12, 2026
***********************************************************************************************************************************************************************/
"use strict";
const router = require("express").Router();
const ctrl = require("../../controllers/client/media.controller");
const mediaGuard = require("../../middleware/mediaGuard.middleware");
const { authenticate } = require("../../middleware/auth.middleware");
// ── Stream endpoint — NO mediaGuard, NO authenticate ─────────────────────────
// The signed JWT in :token IS the only credential needed.
// Browser media/document elements do NOT send Origin/Referer on direct requests
// so mediaGuard would always block them.
// Supports: video, audio, document (PDF), image
router.get("/stream/:token", ctrl.streamAsset);
// ── All other routes — guarded ────────────────────────────────────────────────
router.use(mediaGuard);
router.post("/token", authenticate, ctrl.issueToken);
module.exports = router;