From 0071c17fe5b17e7d41c2b47c729e5e5feaa48222 Mon Sep 17 00:00:00 2001 From: stringsplit <77242831+nbitzz@users.noreply.github.com> Date: Mon, 2 Oct 2023 22:00:21 -0700 Subject: [PATCH] tokens: ability to set no expiration --- src/server/lib/auth.ts | 5 +++-- src/server/routes/authRoutes.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/lib/auth.ts b/src/server/lib/auth.ts index 365c82b..75a4fd8 100644 --- a/src/server/lib/auth.ts +++ b/src/server/lib/auth.ts @@ -37,7 +37,7 @@ export function create( let token = { account:id, token:crypto.randomBytes(36).toString('hex'), - expire:Date.now()+expire, + expire: expire ? Date.now()+expire : 0, type, tokenPermissions: type == "App" ? tokenPermissions || ["user"] : undefined @@ -60,7 +60,7 @@ export function tokenFor(req: express.Request) { } function getToken(token:string) { - return AuthTokens.find(e => e.token == token && Date.now() < e.expire) + return AuthTokens.find(e => e.token == token && (e.expire == 0 || Date.now() < e.expire)) } export function validate(token:string) { @@ -76,6 +76,7 @@ export function getPermissions(token:string): TokenPermission[] | undefined { } export function tokenTimer(token:AuthToken) { + if (!token.expire) return // justincase if (Date.now() >= token.expire) { invalidate(token.token) return diff --git a/src/server/routes/authRoutes.ts b/src/server/routes/authRoutes.ts index 0c5bb19..a8de6ff 100644 --- a/src/server/routes/authRoutes.ts +++ b/src/server/routes/authRoutes.ts @@ -448,7 +448,7 @@ authRoutes.get("/me", requiresAccount, requiresPermissions("user"), (req,res) => let accId = acc.id res.send({ ...acc, - sessionCount: auth.AuthTokens.filter(e => e.type != "App" && e.account == accId && e.expire > Date.now()).length, + sessionCount: auth.AuthTokens.filter(e => e.type != "App" && e.account == accId && (e.expire > Date.now() || !e.expire)).length, sessionExpires: auth.AuthTokens.find(e => e.token == sessionToken)?.expire, password: undefined, email: