From c47722134bcf53a9bf00fe4020d8b31a4a0da278 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Mon, 17 Nov 2025 15:21:27 +0000 Subject: [PATCH] Add token expiration date to social media pages for managed accounts Update schema and routes to include a `tokenExpiresAt` field, setting it to 60 days after creation for social media page tokens. Replit-Commit-Author: Agent Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Event-Id: a818a1ee-3b1a-48f9-9639-24fc156db095 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/5aomXd9 --- server/routes.ts | 11 ++++++++++- shared/schema.ts | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/routes.ts b/server/routes.ts index 00a654d..c5124f7 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1155,7 +1155,16 @@ export async function registerRoutes(app: Express): Promise { try { const user = req.user as User; const userId = user.id; - const pageData = insertSocialPageSchema.parse({ ...req.body, userId }); + + // Calculate token expiration date (60 days from now) + const tokenExpiresAt = new Date(); + tokenExpiresAt.setDate(tokenExpiresAt.getDate() + 60); + + const pageData = insertSocialPageSchema.parse({ + ...req.body, + userId, + tokenExpiresAt + }); const page = await storage.createSocialPage(pageData); res.json(page); } catch (error) { diff --git a/shared/schema.ts b/shared/schema.ts index 06a6532..83a798b 100644 --- a/shared/schema.ts +++ b/shared/schema.ts @@ -24,6 +24,7 @@ export const socialPages = pgTable("social_pages", { pageId: text("page_id").notNull(), pageName: text("page_name").notNull(), accessToken: text("access_token").notNull(), + tokenExpiresAt: timestamp("token_expires_at"), followersCount: integer("followers_count").default(0), isActive: text("is_active").notNull().default("true"), createdAt: timestamp("created_at").defaultNow(),