コンテンツにスキップ

Session Table

概要

管理用のテーブル session 情報 (ユーザー・管理者のログイン/ログアウト追跡)

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL許可 デフォルト値 備考
Session Information session id string ◯ セッション識別子 (UUID, JWT jti, またはトークンハッシュ)
jti string ◯ JWT ID (jti クレーム)
token_hash string ◯ JWTトークンのSHA-256ハッシュ (64文字)
user_type string user または admin
cognito_sub string joinなしでクエリ可能なCognito sub
user_id number user:id ◯ ユーザーテーブルへの外部キー (管理者セッションの場合はnull)
admin_id number admin:id ◯ 管理者テーブルへの外部キー (ユーザーセッションの場合はnull)
login_at datetime セッション作成日時
logout_at datetime ◯ セッション終了日時
ip_address string ◯ ログイン時のクライアントIPアドレス
user_agent string ◯ ブラウザ/クライアントのユーザーエージェント
expires_at datetime ◯ セッション有効期限
revoked_at datetime ◯ トークン失効日時
created_at datetime
updated_at datetime
deleted_at datetime ◯
created_by string
updated_by string
deleted_by string

リレーション

  • user_id → user.id
  • admin_id → admin.id

インデックス

  • 主キー (id)
  • UNIQUE (token_hash)
  • INDEX (user_id)
  • INDEX (admin_id)
  • INDEX (cognito_sub, user_type)
  • INDEX (user_type, logout_at)
  • INDEX (expires_at)
  • INDEX (jti)

注記

  • ユーザーと管理者のセッションを追跡
  • user_typeで'user'と'admin'セッションを区別
  • user_idまたはadmin_idの少なくとも1つは設定する必要がある
  • token_hashにより実際のトークンを保存せずに高速な検証が可能
  • セッションの有効期限と失効をサポート
  • 論理削除サポート (deleted_atカラム)