2026年6月13日(土)
今日やったこと
- TSUMOO-12 登録処理実装を進めた
- Laravel側にアカウント登録APIを追加
accounts、account_profiles、account_auth_identitiesなど、認証まわりのテーブル構成を整理- アカウント、プロフィール、外部認証IDを分けて扱う方針にした
- メールアドレスは暗号化し、検索用にはハッシュを使う方針にした
- パスワードは強度チェックと漏洩済みパスワードチェックを入れる方針にした
- メール確認処理を実装した
- Laravelの署名付きURLを使って、メール確認リンクから登録完了できるようにした
- Tsumoo用のメール確認テンプレートを追加
- メール確認済みリンクを再度開いた場合の挙動を整理
- フロントエンドの登録フォームをAPI接続した
- 登録フォームからLaravel APIへ送信する処理を追加
- 登録成功後は確認メール送信完了画面へ遷移するようにした
- APIバリデーションエラーはトーストではなく、フォーム上部や対象項目近くに表示する方針にした
- CSRFまわりの共通処理を整理した
- Cookieセッション、SameSite、CSRF token、CORS / Origin、HTTPS を前提にした構成を確認
- 変更系APIの前に
/sanctum/csrf-cookieを取得する方針にした - フロントエンドの
apiClientにCSRF cookie取得処理を追加
- 登録処理の実装ガイドを整備した
- 登録フォーム、API送信、Laravel側のController / Resource / Modelの対応関係を整理
- 「どのファイルを見れば何がわかるか」が追える形にした
ロードマップ
フェーズ1: タスク管理MVP
進捗: 21 / 43件
今日対応したタスク
- 進行中 TSUMOO-12 登録処理実装
次に取り組むタスク
- Google認証による登録 / ログイン処理を実装する
- 登録完了後の導線と直リンク制御を確認する
/api/meを追加し、フロントエンド側で現在ログイン中のアカウントを取得できるようにする- 認証済みユーザー、未ログインユーザー、メール未確認ユーザーの画面ガードを整理する
考えたこと
今日は、Tsumooで初めてLaravel側の本格的な実装に入りました。
画面コーディングだけの段階では見えていなかった、CSRF、Cookie、CORS、メール確認、マイグレーション、テストといった土台の部分が一気に出てきました。登録処理は単に「ユーザーを作る」だけではなく、今後のログイン、パスワードリセット、Google認証、退会、アカウント設定の前提になるので、かなり慎重に進める必要があると感じました。
特に大きかったのは、JWTではなくCookieセッションとCSRFを使う方針を再確認したことです。Webアプリとしてブラウザ中心で使うなら、Laravel Sanctumを前提にしたCookieベースの構成がSPA開発上では合っていると判断しました。
あと実装ガイドを作り始めました。設計書を見ながら実装し、保守や確認では実装ガイドを見る。この流れにすると、後からコードを読む時に迷いにくくなりそうです。
決めたこと
- 認証はCookieセッション、CSRF、SameSite、HTTPSを前提に進める
- Laravel Sanctumの
/sanctum/csrf-cookieをCSRF cookie取得口として使う - メール確認は、ログイン必須APIではなく署名付きURLで完了できる形にする
- 登録成功後の確認メール送信完了画面は、登録直後の遷移時だけ自然に表示できるようにする
- 登録完了画面は、直リンクではなく確認完了後の流れで表示する
- メールアドレスは暗号化し、検索用にはハッシュを使う
- 実装ファイルには、処理の意図がわかる範囲で軽いコメントを入れる
次にやること
- Google認証の登録 / ログイン処理を実装する
- Google OAuthのローカル検証設定を整理する
- 登録完了メールを追加する
/api/meと認証ガードを実装する- メール確認メールの再送処理を後続タスクとして整理する