レディスは不正ログインをどのように判断しますか
不正ログインの判定には、Redisの中のキーと値のペアにユーザーのログイン状態を格納します。以下は、実行可能な実装です。
- ユーザーがログイン時にはユーザーのログイン状態をRedisに格納する。例えばuser::login_statusのキーに文字列型のキーバリューペアとして保存でき、1を値としてログイン成功、0を値としてログイン失敗を表す。
- ユーザーがログインを試みた際は、まずRedisからユーザーのログイン状態を取得する。取得した値が1の場合は、ユーザーはすでにログイン済みで不正ログインとなる。取得した値が0の場合は、ユーザーは前回のログインに失敗しており、再度ログインを試行できる。
- ユーザーがログイン成功後、ユーザーのログイン状態を1に更新し、ログインが成功したことを示します。
- ログイン状態の有効性を保つには、有効期限を設定します。たとえば、ログイン状態の有効期限を5分間に設定します。Redis の EXPIRE コマンドを使用してキーに有効期限を設定できます。
ユーザーが不正ログインを試みた際は、Redisに保持されたログイン状態を判別することで判断可能となり、また、有効期限を設定することで、ログイン状態のタイムリーな更新や破棄が担保できる。