diff --git a/__tests__/boot.ts b/__tests__/boot.ts index 215da3b50c..e7b533d732 100644 --- a/__tests__/boot.ts +++ b/__tests__/boot.ts @@ -486,6 +486,9 @@ describe('logged in boot', () => { getSession: async () => ({ user: { id: '1' }, + session: { + expiresAt: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000), + }, }) as unknown, }, } as ReturnType); diff --git a/src/routes/boot.ts b/src/routes/boot.ts index 70a81cce8f..8fc74a088d 100644 --- a/src/routes/boot.ts +++ b/src/routes/boot.ts @@ -939,6 +939,19 @@ export const getBootData = async ( )) as BetterAuthSession | null; if (session) { + const cookieKey = cookies.authSession.key; + const rawToken = req.cookies[cookieKey]; + if (rawToken) { + const sessionExpiresAt = session.session.expiresAt.getTime(); + const cookieExpiresAt = + Date.now() + (cookies.authSession.opts.maxAge ?? 0) * 1000; + if (sessionExpiresAt !== cookieExpiresAt) { + setCookie(req, res, 'authSession', rawToken, { + expires: session.session.expiresAt, + }); + } + } + req.userId = session.user.id; req.trackingId = req.userId; setTrackingId(req, res, req.trackingId);