Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- urandom0: Száműztem az AI-t az életemből
- btz: Internet fejlesztés országosan!
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Real Racing 3 - Freemium csoda
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Brogyi: CTEK akkumulátor töltő és másolatai
-
LOGOUT
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Jim-Y
veterán
Köszi,
Hát ezt egy kicsit későn láttam meg, közben előálltam egy béta verzióval saját kútfőből, de le fogom cserélni az általad linkelt elegánsabb megoldásra.
Azért, mert tudom, hogy így illik, a megoldás:
const { AuthError, LoginError } = require('blabla');
const THRESHOLD_OF_TRIES = 3; // 3 tries until drop
const DEFAULT_TIMEOUT = 300000; // 5mins in milliseconds
const cache = {};
module.exports = function * rateLimiter(next) {
const user = this.request.body.email;
if (cache[user] != null && cache[user].tries >= THRESHOLD_OF_TRIES && Date.now() < cache[user].dropUntil) {
this.throw(423); // Locked for 5 mins
}
else if (cache[user] != null && cache[user].tries >= THRESHOLD_OF_TRIES && Date.now() > cache[user].dropUntil) {
delete cache[user];
}
try {
yield next;
}
catch (err) {
if (err instanceof AuthError || err instanceof LoginError) {
if (!cache[user]) {
cache[user] = {
tries: 1,
dropUntil: null
};
}
else {
cache[user].tries++;
if (cache[user].tries >= THRESHOLD_OF_TRIES) {
cache[user].dropUntil = Date.now() + DEFAULT_TIMEOUT;
}
}
this.throw(err);
}
console.error(err);
}
};
Új hozzászólás Aktív témák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Nintendo Switch 2
- Horgász topik
- Milyen autót vegyek?
- Íme az év legszebb játékai - a Digital Foundry szerint
- World of Tanks - OFF topic
- Okos Otthon / Smart Home
- Milyen videókártyát?
- Milyen cserélhető objektíves gépet?
- Házimozi haladó szinten
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte H610M i3 12100F 16GB DDR4 512GB SSD RX 5700 8GB Zalman Z1 PLUS ADATA 600W
- Gamer PC-Számítógép! Csere-Beszámítás! I7 6700 / RX 5700XT 8GB / 32GB DDR4 / 512GB SSD
- Fém, összecsukható és kihúzható fotó állvány eladó
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC-Számítógép! Csere-Beszámítás! R5 8600G / 6700XT 12GB / 16GB DDR5 / 512 SSD + 2TB HDD!
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest

