Menu
CoddyTech

ספירת ניסיונות כושלים

חלק מהיחידה אימות ואבטחה במסלול ה-Node.js של Coddy. שיעור 21 מתוך 24.

מגביל כניסות צריך לזכור ניסיונות כושלים בין בקשות. Map מאחסן ערכים תחת מפתחות. השתמשו בכל שם משתמש כמפתח, כדי שכישלונות בחשבון אחד לא ישפיעו על חשבון אחר.

const counts = new Map();
const old = counts.get('bo') ?? 0;
counts.set('bo', old + 1);

counts.get(key) מחזירה undefined עבור מפתח חסר, ולכן ערך ברירת המחדל מתחיל את הספירה שלו מאפס. השאירו את ה-Map מחוץ לפונקציית הבקשה כדי לשמר אותו בזמן שהשרת הזה פועל. כל בקשה בתרגול הזה מייצגת ניסיון כושל. תפוגה תהיה שלב נפרד; ה-Map הזה ממשיך כרגע לספור עד ש-Run מפעיל מחדש את השרת.

challenge icon

אתגר

קל

זהו פרויקט תרגול קטן. ההגדרה שלו מסופקת; ערכו רק את exercise.js.

הגדילו את המונה עבור שם המשתמש שסופק והחזירו אותו ב־count. שלחו POST עם {"username":"ada"} פעמיים אל /result: המונים יהיו 1 ואז 2. שליחת bo תיתן 1; שליחה נוספת של ada תיתן 3.

צרו את ה־Map בעצמכם, ומקמו אותו כך שהבקשה השנייה תוכל לראות את המונה הראשון. לחיצה נוספת על Run מפעילה מחדש את השרת ומרוקנת את המאגר שבזיכרון.

נסו בעצמכם

// צרו את מאגר הספירות במקום שבו הוא יישמר בין בקשות.
export function exercise({ username }) {
    return { count: 0 };
}

כל השיעורים ביחידה אימות ואבטחה

תרגלו בעצמכם: Express אונליין