From d6c7451121023c464c0b2fba7be78446d50836b5 Mon Sep 17 00:00:00 2001 From: AV77web Date: Tue, 9 Jun 2026 13:38:58 +0200 Subject: [PATCH] correzioni --- dist/index.js | 3 +-- dist/index.js.map | 2 +- docker-compose.yml | 1 + src/auth/config.ts | 18 ++++++++++++++++++ src/index.ts | 3 +-- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/dist/index.js b/dist/index.js index 8c78306..79f5c8b 100644 --- a/dist/index.js +++ b/dist/index.js @@ -18,8 +18,7 @@ app.options(/.*/, corsMiddleware); app.get("/api/health", (_req, res) => { res.json({ status: "ok" }); }); -// Express 5: il wildcard * deve essere nominato (es. *splat) -app.use("/api/auth/{*splat}", ExpressAuth(authConfig)); +app.use("/api/auth", ExpressAuth(authConfig)); app.use("/api/utenti", utentiRouter); app.use("/api/categorie-spesa", categorieRouter); app.use("/api/rimborsi", rimborsiRouter); diff --git a/dist/index.js.map b/dist/index.js.map index 12b3d6a..87601f3 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAE9C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC1B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAElC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,6DAA6D;AAC7D,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AACjD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAE/C,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAE9C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC1B,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACxB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACxB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAElC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACnC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AACrC,GAAG,CAAC,GAAG,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;AACjD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAE/C,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEtB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAC/B,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 7a30385..e8fcfe4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ services: env_file: - .env environment: + NODE_ENV: production DB_HOST: mysql DB_PORT: 3306 PORT: 3003 diff --git a/src/auth/config.ts b/src/auth/config.ts index 61688eb..51c07d2 100644 --- a/src/auth/config.ts +++ b/src/auth/config.ts @@ -5,11 +5,29 @@ import type { RowDataPacket } from "mysql2"; import pool from "../db/pool.js"; import type { Ruolo, Utente } from "../types/index.js"; +const isProduction = process.env.NODE_ENV === "production"; + +const crossOriginCookieOptions = { + httpOnly: true, + sameSite: "none" as const, + secure: true, + path: "/", +}; + export const authConfig: ExpressAuthConfig = { + basePath: "/api/auth", trustHost: true, secret: process.env.AUTH_SECRET, + useSecureCookies: isProduction, session: { strategy: "jwt" }, pages: { signIn: "/login" }, + cookies: isProduction + ? { + sessionToken: { options: crossOriginCookieOptions }, + csrfToken: { options: { ...crossOriginCookieOptions, httpOnly: false } }, + callbackUrl: { options: crossOriginCookieOptions }, + } + : undefined, providers: [ Credentials({ credentials: { diff --git a/src/index.ts b/src/index.ts index 9f427cc..2b16ffe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -23,8 +23,7 @@ app.get("/api/health", (_req, res) => { res.json({ status: "ok" }); }); -// Express 5: il wildcard * deve essere nominato (es. *splat) -app.use("/api/auth/{*splat}", ExpressAuth(authConfig)); +app.use("/api/auth", ExpressAuth(authConfig)); app.use("/api/utenti", utentiRouter); app.use("/api/categorie-spesa", categorieRouter); app.use("/api/rimborsi", rimborsiRouter);