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 }.
Défi
FacileMets à 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é
1Mots de passe
Octets et texte hexadécimalDériver une clé de mot de passeUn nouveau selNe stockez jamais les mots de passeComparer les octets de cléVérifier un mot de passeRègles d’inscription4Propriétaires et sécurité
Vos notes uniquementRôles d’administrationEntraînez-vous par vous-même : Playground Express