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..38f1602 100644 --- a/docker/web.Dockerfile +++ b/docker/web.Dockerfile @@ -23,20 +23,8 @@ ENV NEXT_TELEMETRY_DISABLED=1 # db/index.ts throw ถ้าไม่มี DATABASE_URL ตอน next build เก็บ page data — # ใส่ค่า dummy (postgres.js เชื่อมแบบ lazy ไม่มี query ตอน build) ตัวจริงฉีดตอน docker run ENV DATABASE_URL=postgresql://placeholder:placeholder@127.0.0.1:5432/placeholder -ENV MINIO_ENDPOINT=127.0.0.1 -ENV MINIO_PORT=19000 -ENV MINIO_USE_SSL=false -ENV MINIO_ACCESS_KEY=minioadmin -ENV MINIO_SECRET_KEY=minioadmin -ENV DOCVER_API_KEY=2d9b76d49a4f5311f6a0dacf759ecec53f34b6d102f24c696890a4052c99cf54 -ENV DOCVER_TOKEN_SECRET=487023dd1c1c4d6a07475e96b1cc300fec1e68ac9c2dd7d5ac9b1bf75da1053e -ENV DOCVER_TOKEN_TTL_SECONDS=604800 -ENV MINIO_BUCKET=docver -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);