Documents
Home

06 認証仕様

6.1 ログインフロー

【通常】
有効なセッションあり → そのまま利用

有効なセッションなし
    ↓
Discord OAuth(基本)
    ├── 成功 → セッション発行・Discord 情報自動同期
    │         パスキー未登録なら「おすすめ」表示
    └── 失敗・使えない
            ↓
        緊急ログイン
        メールアドレス + ユーザー名
            + パスキー
            or デバイスフィンガープリント
            or 管理者発行の一時キー

6.2 緊急ログインのルール


6.3 一時キー(緊急ログイン)フロー

メンバーが WebUI で要請
    ↓ POST /api/v1/auth/emergency/request
member_emergency_keys に status=pending で作成
    ↓
管理者の Discord DM へ通知
    ↓ POST /api/v1/auth/emergency/issue/:id(管理者)
key_hash 生成・status=issued
    ↓
管理者がシステム外でメンバーへキーを伝達
    ↓ POST /api/v1/auth/emergency/verify
used_at 記録・status=used・キー無効化

6.4 ログイン通知

Discord DM 宛に通知する。

通知内容: - OS・ブラウザ名 - 日時 - ログイン方法(session / oauth / passkey / totp / emergency_key) - 新規端末フラグ

通知タイミングは Discord アカウント単位でユーザーが設定可能(詳細は 11_notification.md 参照)。


6.5 完全削除フロー

管理者が完全削除 UI にアクセス
    ↓ POST /api/v1/auth/permanent-delete-token
パスキー or TOTP で本人確認
    ↓
確認用トークン発行(有効期限 5 分・1 操作限り)
    ↓ DELETE /api/v1/.../permanent (トークン付き)
permanent_delete_logs にスナップショット保存
    ↓
対象レコードを物理削除

6.6 デバイスフィンガープリント


6.7 セッション管理