fix: fix getUser in rate limit

This commit is contained in:
tdurieux
2023-04-03 11:18:15 +02:00
parent f8a0315a1d
commit d29d4281ab
2 changed files with 10 additions and 3 deletions

View File

@@ -129,6 +129,9 @@ export async function getUser(req: express.Request) {
httpStatus: 401,
});
}
if (!req.user) {
notConnected();
}
const user = (req.user as any).user;
if (!user) {
notConnected();

View File

@@ -68,9 +68,13 @@ export default async function start() {
}),
windowMs: 15 * 60 * 1000, // 15 minutes
max: async (request: express.Request, response: express.Response) => {
const user = await getUser(request);
if (user && user.isAdmin) return 0;
if (user) return config.RATE_LIMIT;
try {
const user = await getUser(request);
if (user && user.isAdmin) return 0;
if (user) return config.RATE_LIMIT;
} catch (_) {
// ignore: user not connected
}
// if not logged in, limit to half the rate
return config.RATE_LIMIT / 2;
},