avoid unnecessarily checking the authoritative remember directive too often

This commit is contained in:
nvms 2024-09-05 13:23:17 -04:00
parent 75715ece00
commit 48619da543

View File

@ -47,6 +47,7 @@ type AuthSession = {
rolemask: number; rolemask: number;
remembered: boolean; remembered: boolean;
lastResync: Date; lastResync: Date;
lastRememberCheck: Date;
forceLogout: number; forceLogout: number;
verified: boolean; verified: boolean;
}; };
@ -439,6 +440,7 @@ export const createAuth = async ({
if (!datasource) { if (!datasource) {
throw new Error("datasource is required"); throw new Error("datasource is required");
} }
const um = createUserManager({ req, res, datasource }); const um = createUserManager({ req, res, datasource });
const isLoggedIn = () => req.session?.auth?.loggedIn ?? false; const isLoggedIn = () => req.session?.auth?.loggedIn ?? false;
@ -495,6 +497,12 @@ export const createAuth = async ({
const { token } = getRememberToken(); const { token } = getRememberToken();
if (req.session.auth.lastRememberCheck && (Date.now() - new Date(req.session.auth.lastRememberCheck).getTime()) < 5000) {
return;
}
req.session.auth.lastRememberCheck = new Date();
if (!token) { if (!token) {
return; return;
} }
@ -761,6 +769,7 @@ export const createAuth = async ({
rolemask: user.rolemask, rolemask: user.rolemask,
remembered: remember, remembered: remember,
lastResync: new Date(), lastResync: new Date(),
lastRememberCheck: new Date(),
forceLogout: user.forceLogout, forceLogout: user.forceLogout,
verified: user.verified, verified: user.verified,
}; };