$30 off During Our Annual Pro Sale. View Details »

TypeScriptの型システムを活用した複合認証システムの設計パターン

Avatar for Kanato Kanato
November 24, 2025
15

 TypeScriptの型システムを活用した複合認証システムの設計パターン

Avatar for Kanato

Kanato

November 24, 2025
Tweet

Transcript

  1. © toggle holdings inc. 2
 ⾼橋哉⼈ 所属 トグルホールディングス 25卒 X

    @kanayan_toggle ※哉⼈で「かなと」と読みます
  2. 9
 © toggle holdings inc. • メールを無限に送れる仕様になってない? • 認証コード不一致 or

    期限切れなどのエラーを正しく返すか • タブを複数開いてそれぞれでログインしたらどうなるか 次々出てくる確認ポイント
  3. 12
 © toggle holdings inc. • タブを同時に 2つ開いてどっちもログインするとエラーになる 😥 •

    10分経過後にコード入力してもエラー出ない 😨 • 10分経過後に再送信ボタン押すとなぜかログインできる 😱 etc… 不具合の例
  4. 15
 © toggle holdings inc. • 問題に場当たり的に対応し、各コンポーネントが肥大化 →状態管理が困難に • エラーハンドリングが曖昧

    (未ログイン・セッション無効・認証 コードの不一致・トークン期限切れ ) 悲劇の原因
  5. 22
 © toggle holdings inc. リファクタリング • フローチャートを元に、各クラスの役割を明確にした上で責任分離 ◦ アクセス制御、認証、認可、記録

    …といったフェーズを明示的に定 義して、それを transactionとserviceで表す • Zodを用いて、フロントエンドとバックエンド境界の型安全性を担保しつ つ正しいエラーレスポンスを定義
  6. 28
 © toggle holdings inc. まとめ • 複雑な実装は視覚的に整理 • 新規の実装に場当たり的に対処しない

    • アーキテクチャに則った責任分離を意識 • 試行錯誤しながらも無事にリリースできた