refresh session on interaction

Closes #1
This commit is contained in:
Markus Brueckner 2024-12-29 14:38:02 +01:00
parent 209e05f959
commit f6253bcc15

View file

@ -21,8 +21,12 @@ export async function createSession(token: string, userId: number) {
export async function validateSession(token: string) { export async function validateSession(token: string) {
const session = await db.select().from(sessions).where(eq(sessions.token, token)).limit(1); const session = await db.select().from(sessions).where(eq(sessions.token, token)).limit(1);
if (session[0] && session[0].expires > Date.now()) { if (session[0] && session[0].expires > Date.now()) {
db.update(sessions).set({ expires: Date.now() + 600 * 1000 }).where(eq(sessions.token, token)); // refresh the session as long as the user is working in it const newExpires = Date.now() + 600 * 1000;
return session[0]; db.update(sessions).set({ expires: newExpires }).where(eq(sessions.token, token)); // refresh the session as long as the user is working in it
return {
...session[0],
expires: newExpires
};
} }
await db.delete(sessions).where(lt(sessions.expires, Date.now())); // clean up await db.delete(sessions).where(lt(sessions.expires, Date.now())); // clean up
return null; return null;