Checkpoint: Correction de l'erreur "non authentifié" sur /api/db-backup : utilisation de parseCookies(req.headers.cookie) au lieu de req.cookies (qui nécessitait cookie-parser non installé).
This commit is contained in:
@@ -7,6 +7,7 @@ import fs from "fs";
|
|||||||
import archiver from "archiver";
|
import archiver from "archiver";
|
||||||
import { exec as execCb } from "child_process";
|
import { exec as execCb } from "child_process";
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
|
import { parse as parseCookies } from "cookie";
|
||||||
const execAsync = promisify(execCb);
|
const execAsync = promisify(execCb);
|
||||||
import { createExpressMiddleware } from "@trpc/server/adapters/express";
|
import { createExpressMiddleware } from "@trpc/server/adapters/express";
|
||||||
import { registerOAuthRoutes } from "./oauth";
|
import { registerOAuthRoutes } from "./oauth";
|
||||||
@@ -233,7 +234,8 @@ async function startServer() {
|
|||||||
app.post("/api/db-backup", async (req, res) => {
|
app.post("/api/db-backup", async (req, res) => {
|
||||||
// Vérifier l'auth JWT
|
// Vérifier l'auth JWT
|
||||||
const { verifyToken } = await import("../auth");
|
const { verifyToken } = await import("../auth");
|
||||||
const token = req.cookies?.auth_token;
|
const cookies = parseCookies(req.headers.cookie || "");
|
||||||
|
const token = cookies.auth_token;
|
||||||
if (!token) { res.status(401).json({ error: "Non authentifié" }); return; }
|
if (!token) { res.status(401).json({ error: "Non authentifié" }); return; }
|
||||||
const user = verifyToken(token);
|
const user = verifyToken(token);
|
||||||
if (!user || user.role !== "admin") { res.status(403).json({ error: "Accès réservé aux admins" }); return; }
|
if (!user || user.role !== "admin") { res.status(403).json({ error: "Accès réservé aux admins" }); return; }
|
||||||
@@ -278,7 +280,8 @@ async function startServer() {
|
|||||||
// Télécharger une sauvegarde existante
|
// Télécharger une sauvegarde existante
|
||||||
app.get("/api/db-backup/:filename", async (req, res) => {
|
app.get("/api/db-backup/:filename", async (req, res) => {
|
||||||
const { verifyToken } = await import("../auth");
|
const { verifyToken } = await import("../auth");
|
||||||
const token = req.cookies?.auth_token;
|
const cookies2 = parseCookies(req.headers.cookie || "");
|
||||||
|
const token = cookies2.auth_token;
|
||||||
if (!token) { res.status(401).json({ error: "Non authentifié" }); return; }
|
if (!token) { res.status(401).json({ error: "Non authentifié" }); return; }
|
||||||
const user = verifyToken(token);
|
const user = verifyToken(token);
|
||||||
if (!user || user.role !== "admin") { res.status(403).json({ error: "Accès réservé aux admins" }); return; }
|
if (!user || user.role !== "admin") { res.status(403).json({ error: "Accès réservé aux admins" }); return; }
|
||||||
|
|||||||
Reference in New Issue
Block a user