mirror of
https://github.com/mudabbir-ahmad/peworkshop.git
synced 2026-10-08 03:50:21 +00:00
37 lines
977 B
JavaScript
37 lines
977 B
JavaScript
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;
|
|
}
|
|
}
|