Spaces:
Paused
Paused
| import { PreviewServer, ViteDevServer } from "vite"; | |
| export function validateAccessKeyServerHook< | |
| T extends ViteDevServer | PreviewServer, | |
| >(server: T) { | |
| server.middlewares.use(async (req, res, next) => { | |
| if (req.url !== "/api/validate-access-key" || req.method !== "POST") { | |
| return next(); | |
| } | |
| const accessKeys = process.env.ACCESS_KEYS?.split(",") ?? []; | |
| let body = ""; | |
| req.on("data", (chunk) => { | |
| body += chunk.toString(); | |
| }); | |
| req.on("end", () => { | |
| const { accessKey } = JSON.parse(body); | |
| res.setHeader("Content-Type", "application/json"); | |
| res.end(JSON.stringify({ valid: accessKeys.includes(accessKey) })); | |
| }); | |
| }); | |
| } | |