| 1234567891011121314151617181920212223242526272829303132333435 |
- "use strict";
- const DEFAULT_ADMIN_TOKEN = "dev-task-board-token";
- function getAdminToken() {
- const envToken = process.env.TASK_BOARD_ADMIN_TOKEN;
- if (typeof envToken === "string" && envToken.trim()) {
- return envToken.trim();
- }
- return DEFAULT_ADMIN_TOKEN;
- }
- function sendUnauthorized(res) {
- res.writeHead(401, {
- "Content-Type": "application/json; charset=utf-8",
- "Cache-Control": "no-store",
- "WWW-Authenticate": 'Bearer realm="task-board-admin"',
- });
- res.end(JSON.stringify({ error: "Unauthorized" }));
- }
- function requireAdmin(req, res) {
- const authHeader = typeof req.headers.authorization === "string" ? req.headers.authorization.trim() : "";
- const token = authHeader.toLowerCase().startsWith("bearer ") ? authHeader.slice(7).trim() : "";
- if (!token || token !== getAdminToken()) {
- sendUnauthorized(res);
- return false;
- }
- return true;
- }
- module.exports = {
- getAdminToken,
- requireAdmin,
- };
|