Hirdetés
- eldiablo: 30 év után szakítottunk, de azért még beszélünk...
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Dr. Mózes: Lakberendezési tanácskérés
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- MasterDeeJay: i7 4980HQ asztali gépben (vs i7 4770)
- 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
Hirdetés
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- iPhone 17 256 GB Sage - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- Sandisk Extreme Portable SSD 2TB!
- Telefon felvásárlás!! Huawei P20 Lite/Huawei P20/Huawei P30 Lite/Huawei P30/Huawei P30 Pro
- Apple iPhone 12 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

