Menu
CoddyTech

失敗回数のカウント

CoddyのNode.jsジャーニー「認証とセキュリティ」セクションの一部。レッスン 21/24。

ログイン制限機能では、リクエストをまたいで失敗した回数を記憶する必要があります。Map はキーに対応する値を保存します。アカウントごとの失敗がほかのアカウントに影響しないよう、ユーザー名をキーとして使います。

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

counts.get(key)は、キーが見つからない場合に undefined を返すため、フォールバックによってカウントはゼロから始まります。このサーバーの実行中に値を保持できるよう、Map はリクエスト関数の外に置いてください。この練習では、各リクエストが失敗した試行を表します。有効期限の処理は別のステップで行います。この Map は現在、「実行」を押してサーバーを再起動するまでカウントし続けます。

challenge icon

チャレンジ

簡単

これは小規模な練習用プロジェクトです。セットアップは用意されています。編集するのはexercise.jsだけです。

指定されたユーザー名のカウントを増やし、その値をcountとして返してください。{"username":"ada"}を/resultに2回POSTすると、カウントは1、次に2になります。boを送信すると1になり、再びadaを送信すると3になります。

Mapを自分で作成し、2回目のリクエストから1回目のカウントが見える場所に配置してください。もう一度「実行」を押すとサーバーが再起動し、このメモリ内のストアがクリアされます。

自分で試してみよう

// リクエスト間でも保持される場所にカウント用のストアを作成します。
export function exercise({ username }) {
    return { count: 0 };
}

認証とセキュリティのすべてのレッスン

自分で練習してみよう: Expressプレイグラウンド