실패 횟수 세기
Coddy Node.js 여정의 인증과 보안 섹션에 포함된 레슨. 24개 중 21번째.
로그인 제한 기능은 요청 전반에 걸친 실패 횟수를 기억해야 합니다. Map은 키에 따라 값을 저장합니다. 각 사용자 이름을 키로 사용하면 한 계정의 실패 횟수가 다른 계정에 영향을 주지 않습니다.
const counts = new Map();
const old = counts.get('bo') ?? 0;
counts.set('bo', old + 1);counts.get(key)는 키가 없으면 undefined를 반환하므로, 대체값을 사용해 횟수를 0에서 시작합니다. 이 서버가 실행되는 동안 Map의 값이 유지되도록 요청 함수 바깥에 둡니다. 이 연습에서는 모든 요청이 실패한 시도를 나타냅니다. 만료 처리는 별도의 단계에서 다룹니다. 현재 이 Map은 Run으로 서버를 다시 시작할 때까지 계속 횟수를 셉니다.
챌린지
쉬움작은 연습 프로젝트입니다. 설정은 제공되어 있으니 exercise.js만 수정하세요.
제공된 사용자 이름의 카운트를 증가시키고 count에 반환하세요. POST로 {"username":"ada"}를 /result에 두 번 보내면 카운트는 차례로 1, 2가 됩니다. bo를 보내면 1이 되고, ada를 다시 보내면 3이 됩니다.
Map을 직접 만들고, 두 번째 요청에서 첫 번째 카운트를 확인할 수 있는 위치에 두세요. ‘실행’을 다시 누르면 서버가 재시작되고 이 메모리 내 저장소가 초기화됩니다.
직접 해보기
// 요청 사이에도 유지되는 곳에 카운트 저장소를 만드세요.
export function exercise({ username }) {
return { count: 0 };
}
인증과 보안의 모든 레슨
직접 연습해 보세요: Express 플레이그라운드