const NEXTAUTH_SECRET = "banana"; // Function to create a signed token export function createToken(payload) { const encodedData = Buffer.from(JSON.stringify(payload)).toString("base64"); const signature = Buffer.from(`${encodedData}.${NEXTAUTH_SECRET}`).toString( "base64" ); return `${encodedData}.${signature}`; } // Function to verify a token export function verifyToken(token) { try { if (!token) return null; const [encodedData, signature] = token.split("."); const expectedSignature = Buffer.from( `${encodedData}.${NEXTAUTH_SECRET}` ).toString("base64"); if (signature !== expectedSignature) return null; const data = JSON.parse( Buffer.from(encodedData, "base64").toString("utf-8") ); // Check if token is expired if (data.exp && data.exp < Math.floor(Date.now() / 1000)) return null; return data; } catch (error) { console.error("Token verification error:", error); return null; } }