delete expired tokens every minute

This commit is contained in:
Guillaume Dorce 2022-08-26 15:41:35 +02:00
parent 9c6654182b
commit 0c4ba1ea77
2 changed files with 28 additions and 1 deletions

View File

@ -53,4 +53,20 @@ const verifyToken = async (token: string): Promise<number> => {
}); });
}; };
export { hashPassword, comparePassword, genToken, verifyToken }; const deleteToken = (token: string) => {
return prisma.token.delete({
where: { token },
});
};
const deleteExpiredTokens = () => {
return prisma.token.deleteMany({
where: {
expiresAt: {
lte: new Date(Date.now()),
},
},
});
};
export { hashPassword, comparePassword, genToken, verifyToken, deleteToken, deleteExpiredTokens };

View File

@ -2,6 +2,7 @@ import express, { urlencoded, json } from 'express';
import cors from 'cors'; import cors from 'cors';
import api from '@/api'; import api from '@/api';
import { config as envConfig } from 'dotenv'; import { config as envConfig } from 'dotenv';
import { deleteExpiredTokens } from '@/controller/AuthController';
envConfig(); envConfig();
@ -42,3 +43,13 @@ app.use('/api', api);
app.listen(port, () => { app.listen(port, () => {
console.log(`Server listening on port ${port}`); console.log(`Server listening on port ${port}`);
}); });
setInterval(() => {
deleteExpiredTokens()
.then((e) => {
console.log(`Deleted ${e.count} expired tokens`);
})
.catch((error) => {
console.log(error);
});
}, 60 * 1000); // 60 seconds