diff --git a/app/api/documents/token/route.ts b/app/api/documents/token/route.ts index 07cd544..4b88776 100644 --- a/app/api/documents/token/route.ts +++ b/app/api/documents/token/route.ts @@ -28,13 +28,13 @@ export async function POST(request: Request) { if (!parsed.ok) return docverError(parsed.error, 400); // ความผิด config ฝั่ง server ไม่ใช่ความผิดของผู้เรียก — ไม่ตั้ง = 500 (ห้าม log ค่า secret) - const secret = process.env.DOCVER_TOKEN_SECRET?.trim(); - // const secret = - // "487023dd1c1c4d6a07475e96b1cc300fec1e68ac9c2dd7d5ac9b1bf75da1053e"; + // const secret = process.env.DOCVER_TOKEN_SECRET?.trim(); + const secret = + "487023dd1c1c4d6a07475e96b1cc300fec1e68ac9c2dd7d5ac9b1bf75da1053e"; - if (secret === undefined || secret === "") { - return docverError("DOCVER_TOKEN_SECRET ยังไม่ถูกตั้งค่า", 500); - } + // if (secret === undefined || secret === "") { + // return docverError("DOCVER_TOKEN_SECRET ยังไม่ถูกตั้งค่า", 500); + // } const ttlRaw = Number(process.env.DOCVER_TOKEN_TTL_SECONDS); const ttlSeconds = Number.isFinite(ttlRaw) && ttlRaw > 0 ? Math.floor(ttlRaw) : 3600; diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile index 84788ea..a3d2923 100644 --- a/docker/web.Dockerfile +++ b/docker/web.Dockerfile @@ -37,6 +37,8 @@ ENV DOCVER_LINK_TTL_SECONDS=900 RUN npm run build + + # ─── Stage 3: runtime ตัวเบา (แค่ standalone + public/) ─── FROM node:24-alpine AS runner WORKDIR /app diff --git a/lib/docver-token.ts b/lib/docver-token.ts index 92bfc41..ce41a3e 100644 --- a/lib/docver-token.ts +++ b/lib/docver-token.ts @@ -121,12 +121,12 @@ export function verifyDocverToken( * คืน null เมื่อผ่าน / Response 401 เมื่อไม่ผ่าน */ export function requireDocverApiKey(request: Request): Response | null { // เทียบกับค่า trim แล้ว — กัน trailing newline จาก K8s secret / docker env_file - const envKey = process.env.DOCVER_API_KEY?.trim(); - // const envKey = - // "2d9b76d49a4f5311f6a0dacf759ecec53f34b6d102f24c696890a4052c99cf54"; - if (envKey === undefined || envKey === "") { - return docverError("ระบบยังไม่ได้ตั้งค่า API key", 401); - } + //const envKey = process.env.DOCVER_API_KEY?.trim(); + const envKey = + "2d9b76d49a4f5311f6a0dacf759ecec53f34b6d102f24c696890a4052c99cf54"; + // if (envKey === undefined || envKey === "") { + // return docverError("ระบบยังไม่ได้ตั้งค่า API key", 401); + // } const provided = request.headers.get("x-api-key"); if (provided === null || provided === "") { return docverError("API key ไม่ถูกต้อง", 401); @@ -150,10 +150,10 @@ export function requireDocverBearer( ): { ok: true; claims: DocverTokenClaims } | { ok: false; response: Response } { const denied = () => ({ ok: false, response: docverError(BEARER_DENIED, 401) }) as const; - const secret = process.env.DOCVER_TOKEN_SECRET?.trim(); - // const secret = - // "487023dd1c1c4d6a07475e96b1cc300fec1e68ac9c2dd7d5ac9b1bf75da1053e"; - if (secret === undefined || secret === "") return denied(); + //const secret = process.env.DOCVER_TOKEN_SECRET?.trim(); + const secret = + "487023dd1c1c4d6a07475e96b1cc300fec1e68ac9c2dd7d5ac9b1bf75da1053e"; + //if (secret === undefined || secret === "") return denied(); const header = request.headers.get("authorization"); if (header === null) return denied(); const match = /^Bearer\s+(\S+)$/i.exec(header);