perf upgrade
This commit is contained in:
@@ -3,6 +3,22 @@ import { ensureSuperTokensBackend } from "../server";
|
||||
import { logger } from "../";
|
||||
import SuperTokens from "supertokens-node";
|
||||
|
||||
const USER_PHONE_TTL_MS = 60 * 1000;
|
||||
const userPhoneCache = new Map<string, { phone: string | undefined; expiresAt: number }>();
|
||||
|
||||
async function getUserPhone(userId: string): Promise<string | undefined> {
|
||||
const now = Date.now();
|
||||
const cached = userPhoneCache.get(userId);
|
||||
if (cached && cached.expiresAt > now) {
|
||||
return cached.phone;
|
||||
}
|
||||
|
||||
const user = await SuperTokens.getUser(userId);
|
||||
const phone = user?.phoneNumbers[0];
|
||||
userPhoneCache.set(userId, { phone, expiresAt: now + USER_PHONE_TTL_MS });
|
||||
return phone;
|
||||
}
|
||||
|
||||
export async function getSessionForStart(request: Request, options?: { sessionRequired?: boolean }) {
|
||||
ensureSuperTokensBackend();
|
||||
|
||||
@@ -52,15 +68,14 @@ export async function getSessionForStart(request: Request, options?: { sessionRe
|
||||
}
|
||||
}
|
||||
|
||||
const user = await SuperTokens.getUser(userId);
|
||||
|
||||
const phone = await getUserPhone(userId);
|
||||
|
||||
return {
|
||||
hasToken: true,
|
||||
accessTokenPayload: session.accessTokenPayload,
|
||||
userId,
|
||||
sessionHandle: session.accessTokenPayload?.sessionHandle,
|
||||
phone: user?.phoneNumbers[0]
|
||||
phone
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user