import { SignJWT, jwtVerify } from "jose"; const SESSION_COOKIE_NAME = "fpt_session"; const SESSION_DURATION = "30d"; function getSecretKey() { const secret = process.env.SESSION_SECRET; if (!secret) { throw new Error("SESSION_SECRET ist nicht gesetzt."); } return new TextEncoder().encode(secret); } export async function createSessionToken(): Promise { return new SignJWT({ auth: true }) .setProtectedHeader({ alg: "HS256" }) .setIssuedAt() .setExpirationTime(SESSION_DURATION) .sign(getSecretKey()); } export async function verifySessionToken(token: string): Promise { try { const { payload } = await jwtVerify(token, getSecretKey()); return payload.auth === true; } catch { return false; } } export { SESSION_COOKIE_NAME };