عداد تنتهي صلاحيته
جزء من قسم المصادقة والأمان في رحلة Node.js على Coddy. الدرس 22 من 24.
تحسب النافذة الثابتة المحاولات ابتداءً من وقت بدء واحد. خزّن since إلى جانب العدد. في نافذة مدتها دقيقة واحدة، تنتهي صلاحيتها عندما تبلغ now - since مقدار 60000 مللي ثانية.
// نافذة زمنية مدتها عشر ثوانٍ في هذا المثال
if (now - since >= 10000) {
count = 0;
since = now;
}
count += 1;أثناء النافذة، احتفظ بوقت البدء الأصلي. إن نقله بعد كل محاولة سيؤدي إلى استمرار تمديد مدة الانتظار. توفّر هذه الممارسة now حتى تتمكن من اختبار الحد الفاصل دون انتظار. يحصل الخادم قيد التشغيل على الوقت الحالي من Date.now(). يستخدم مشروع تسجيل الدخول السجل نفسه { count, since }.
التحدي
سهلحدِّث سجلّ الإخفاقات الخاص بدقيقة واحدة في 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