Guest User

Season Rotation

a guest
Feb 3rd, 2026
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | Source Code | 0 0
  1. export async function POST(request, { params }) {
  2. const authHeader = request.headers.get("x-edge-auth")
  3. if (authHeader !== process.env.EDGE_API_SECRET) {
  4. return new Response("Unauthorized", { status: 401 })
  5. }
  6.  
  7. const { encryptedSession } = params
  8. const token = await decrypt(encryptedSession)
  9. const session = await getSessionByToken(token)
  10.  
  11. if (!session || session.expiresAt < new Date()) {
  12. return Response.json({ error: "Session expired" }, { status: 401 })
  13. }
  14.  
  15. const shouldRotate = (new Date(session.expiresAt) - Date.now()) < ONE_DAY_MS
  16.  
  17. if (!shouldRotate) return Response.json({})
  18.  
  19. // Rotate token
  20. const newToken = generateToken(64)
  21. const newExpiry = new Date(Date.now() + ONE_DAY_MS)
  22.  
  23. await createSession(session.userId, newExpiry, newToken)
  24. await deleteSession(token)
  25.  
  26. const newEncryptedSession = await encrypt(newToken)
  27.  
  28. return Response.json({ newSession: newEncryptedSession, expiresAt: newExpiry })
  29. }
Advertisement
Add Comment
Please, Sign In to add comment