Menu
CoddyTech

Un compteur à expiration

Fait partie de la section Authentification et sécurité du Journey Node.js de Coddy. Leçon 22 sur 24.

Une fenêtre fixe compte les tentatives à partir d’une heure de départ. Stocke since à côté du compteur. Pour une fenêtre d’une minute, elle expire lorsque now - since atteint 60000 millisecondes.

// Une fenêtre de dix secondes dans cet exemple
if (now - since >= 10000) {
    count = 0;
    since = now;
}
count += 1;

Pendant la fenêtre, conserve son heure de départ initiale. La déplacer après chaque tentative prolongerait sans cesse l’attente. Cette pratique fournit now afin que tu puisses tester la limite sans attendre. Un serveur en cours d’exécution obtient l’heure actuelle avec Date.now(). Le projet de connexion utilise le même enregistrement { count, since }.

challenge icon

Défi

Facile

Mets à jour un compteur d’échecs sur une minute dans exercise.js. Si now - since est supérieur ou égal à 60000, démarre une nouvelle fenêtre à now avec un compteur de 1. Sinon, augmente le compteur et conserve since. Renvoie les deux champs.

POST {"count":3,"since":0,"now":10000} : le résultat attendu est {"count":4,"since":0}. À now:60000, le résultat attendu est {"count":1,"since":60000}.

Le GET /result initial utilise l’exemple fourni {"count": 2, "since": 1000, "now": 61000}. Utilise POST /result avec un corps JSON pour essayer d’autres entrées.

Essayez vous-même

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

Toutes les leçons de Authentification et sécurité

Entraînez-vous par vous-même : Playground Express