# ログイン

| 要件 | 値 |
|----|----|
| ログインの有無 | False |
| エンドポイント | /v1/auth/login |
| メソッド | POST |

## 概要

入力欄にユーザーIDとパスワードを入力するとアカウントにログインできます。

アカウント

ログインは3回まで連続して試行が可能で試行回数全てに失敗すると段階的にペナルティが課されます

## ペナルティ

| ペナルティ回数 | ペナルティ内容 |
|----|----|
| 1回 | 15分間ログイン試行不可 |
| 2回 | 1時間ログイン試行不可 |
| 3回 | 1日間ログイン試行不可 |
| 4回 | 1週間ログイン試行不可 |
| 5回 | アカウント凍結 |

## 必要なデータ

| キー | 値の種類 |
|----|----|
| ユーザーID | String |
| パスワード | String |

> **実装メモ（2026-05-31）**: Rust API (`handlers/auth.rs`) は現状、ログイン識別子として **メールアドレス**（`email`）を受け取る。DB の `users.email` 列と対応。ユーザー名（`username`）でのログインは未実装。

## 実装要件
- セッション発行（Valkey への保存）
- ログイン失敗カウントの管理（Valkey または DB）
- ペナルティ時間管理（Valkey TTL）
- 必要コンポーネント: PostgreSQL、Valkey
