Menu
CoddyTech

عداد تنتهي صلاحيته

جزء من قسم المصادقة والأمان في رحلة Node.js على Coddy. الدرس 22 من 24.

تحسب النافذة الثابتة المحاولات ابتداءً من وقت بدء واحد. خزّن since إلى جانب العدد. في نافذة مدتها دقيقة واحدة، تنتهي صلاحيتها عندما تبلغ now - since مقدار 60000 مللي ثانية.

// نافذة زمنية مدتها عشر ثوانٍ في هذا المثال
if (now - since >= 10000) {
    count = 0;
    since = now;
}
count += 1;

أثناء النافذة، احتفظ بوقت البدء الأصلي. إن نقله بعد كل محاولة سيؤدي إلى استمرار تمديد مدة الانتظار. توفّر هذه الممارسة now حتى تتمكن من اختبار الحد الفاصل دون انتظار. يحصل الخادم قيد التشغيل على الوقت الحالي من Date.now(). يستخدم مشروع تسجيل الدخول السجل نفسه { count, since }.

challenge icon

التحدي

سهل

حدِّث سجلّ الإخفاقات الخاص بدقيقة واحدة في exercise.js. إذا كانت قيمة now - since لا تقل عن 60000، فابدأ نافذة جديدة عند now مع جعل العدد 1. وإلا، فزِد العدد وأبقِ على since. أعد كلا الحقلين.

أرسل POST مع {"count":3,"since":0,"now":10000}: النتيجة المتوقعة هي {"count":4,"since":0}. عند now:60000، النتيجة المتوقعة هي {"count":1,"since":60000}.

يستخدم GET /result الأولي المثال المقدَّم {"count": 2, "since": 1000, "now": 61000}. استخدم POST /result مع جسم JSON لتجربة مدخلات أخرى.

جرّب بنفسك

export function exercise({ count, since, now }) {
    return { count: count + 1, since };
}

جميع دروس المصادقة والأمان

تدرّب بنفسك: Playground لـ Express