Menu
CoddyTech

Fehlversuche zählen

Teil des Abschnitts Authentifizierung und Sicherheit der Node.js-Journey von Coddy. Lektion 21 von 24.

Ein Anmeldeversuchsbegrenzer muss fehlgeschlagene Versuche über mehrere Anfragen hinweg speichern. Eine Map speichert Werte unter Schlüsseln. Verwende jeden Benutzernamen als Schlüssel, damit sich Fehlversuche für ein Konto nicht auf ein anderes Konto auswirken.

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

counts.get(key) gibt bei einem fehlenden Schlüssel undefined zurück, sodass der Fallback den Zähler bei null beginnen lässt. Platziere die Map außerhalb der Anfragefunktion, damit sie erhalten bleibt, während dieser Server läuft. Jede Anfrage in dieser Übung stellt einen fehlgeschlagenen Versuch dar. Der Ablauf wird in einem separaten Schritt ergänzt; diese Map zählt derzeit weiter, bis Run den Server neu startet.

challenge icon

Aufgabe

Einfach

Dies ist ein kleines Übungsprojekt. Die Einrichtung ist bereits vorhanden; bearbeite nur exercise.js.

Erhöhe den Zähler für den angegebenen Benutzernamen und gib ihn in count zurück. Sende zweimal POST mit {"username":"ada"} an /result: Die Zählerstände sind zuerst 1 und dann 2. Mit bo als Benutzernamen ergibt das Senden 1; ein erneutes Senden mit ada ergibt 3.

Erstelle die Map selbst und platziere sie so, dass die zweite Anfrage den ersten Zählerstand sehen kann. Wenn du erneut auf „Ausführen“ klickst, wird der Server neu gestartet und dieser In-Memory-Speicher geleert.

Probier es selbst

// Erstelle den Speicher für die Zählerstände so, dass er zwischen Anfragen erhalten bleibt.
export function exercise({ username }) {
    return { count: 0 };
}

Alle Lektionen in Authentifizierung und Sicherheit

Übe selbstständig: Express-Playground