Menu
CoddyTech

Liczenie nieudanych prób

Część sekcji Uwierzytelnianie i bezpieczeństwo ścieżki Node.js w Coddy. Lekcja 21 z 24.

Ogranicznik logowania musi pamiętać nieudane próby między żądaniami. Mapa przechowuje wartości pod kluczami. Użyj każdej nazwy użytkownika jako klucza, aby niepowodzenia na jednym koncie nie wpływały na inne konto.

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

counts.get(key) zwraca undefined dla brakującego klucza, więc wartość zapasowa rozpoczyna zliczanie od zera. Umieść Map poza funkcją obsługującą żądania, aby zachować jej stan podczas działania tego serwera. Każde żądanie w tym ćwiczeniu oznacza nieudaną próbę. Wygasanie będzie osobnym etapem; ta mapa obecnie zlicza próby aż do chwili, gdy „Uruchom” ponownie uruchomi serwer.

challenge icon

Wyzwanie

Łatwy

To niewielki projekt do ćwiczeń. Konfiguracja jest już przygotowana; edytuj tylko exercise.js.

Zwiększ licznik dla podanej nazwy użytkownika i zwróć go w count. Wyślij dwa razy żądanie POST z danymi {"username":"ada"} do /result: liczniki wyniosą kolejno 1 i 2. Wysłanie żądania dla bo daje 1; ponowne wysłanie żądania dla ada daje 3.

Utwórz Map samodzielnie, umieszczając ją tak, aby drugie żądanie mogło odczytać pierwszy licznik. Ponowne naciśnięcie przycisku „Uruchom” restartuje serwer i czyści ten magazyn w pamięci.

Spróbuj swoich sił

// Utwórz magazyn liczników, który zachowa dane między żądaniami.
export function exercise({ username }) {
    return { count: 0 };
}

Wszystkie lekcje w sekcji Uwierzytelnianie i bezpieczeństwo

Poćwicz samodzielnie: Edytor online Express