20 lines
735 B
TypeScript
20 lines
735 B
TypeScript
import type { NextApiRequest, NextApiResponse } from "next";
|
|
|
|
const USERNAME = process.env.SF_WEB_USERNAME;
|
|
const PASSWORD = process.env.SF_WEB_PASSWORD || "devpass";
|
|
const TOKEN = process.env.SF_WEB_AUTH_TOKEN || "dev-token";
|
|
|
|
function isValidUsername(username: unknown): boolean {
|
|
if (!USERNAME) return true;
|
|
return typeof username === "string" && username === USERNAME;
|
|
}
|
|
|
|
export default function handler(req: NextApiRequest, res: NextApiResponse) {
|
|
if (req.method !== "POST") return res.status(405).end();
|
|
const { password, username } = req.body ?? {};
|
|
if (isValidUsername(username) && password === PASSWORD) {
|
|
res.status(200).json({ token: TOKEN });
|
|
} else {
|
|
res.status(401).json({ error: "Invalid credentials" });
|
|
}
|
|
}
|