アカウント認証フロー
このドキュメントはNotionの内容を拡張したものです。Mermaidダイアグラムは元のNotionページと同じですが、詳細な仕様説明が追加されています。
概要
UZUアプリにおけるユーザー認証フローの詳細仕様です。ホーム画面から新規登録・ログインを選択する際の挙動、認証情報の判定、各状況に応じたモーダル表示と選択肢提供について定義します。
フローチャート
認証状態の判定
1. DB存在あり & Auth存在あり
- 状態: ユーザーアカウントがDBに存在し、認証情報も有効
- 動作: 自動的にログイン完了
2. DB存在あり & Auth存在なし
- 状態: ユーザーアカウントがDBに存在するが、認証情報が無効または期限切れ
- 動作:
- 「既存アカウントあり」モーダルを表示
- 選択肢:「既存アカウントでログイン」または「新しいアカウントで登録」
3. DB存在なし & Auth存在あり
- 状態: 認証情報は有効だが、対応するユーザーアカウントがDBに存在しない
- 動作:
- 「認証済みアカウント」モーダルを表示
- 選択肢:「認証済みアカウントでログイン」または「新しいアカウントで登録」
4. DB存在なし & Auth存在なし
- 状態: 新規ユーザー
- 動作: 直接新規登録画面へ遷移
モーダル仕様
既存アカウントありモーダル
- 表示条件: DB存在あり & Auth存在なし
- タイトル: "既存のアカウントが見つかりました"
- メッセージ: "このデバイスで以前に作成されたアカウントがあります。"
- ボタン:
- プライマリ: "既存アカウントでログイン"
- セカンダリ: "新しいアカウントで登録"
認証済みアカウントモーダル
- 表示条件: DB存在なし & Auth存在あり
- タイトル: "認証済みのアカウントがあります"
- メッセージ: "この認証情報で新しいアカウントを作成するか、既存のアカウントと連携できます。"
- ボタン:
- プライマリ: "認証済みアカウントでログイン"
- セカンダリ: "新しいアカウントで登録"
エラーハンドリング
認証エラー
- ネットワークエラー時の再試行機能
- 認証タイムアウト時の適切なメッセージ表示
データベースエラー
- DB接続エラー時の代替フロー
- データ不整合時の復旧処理
実装注意事項
- セキュリティ: 認証情報の安全な保存と伝送
- UX: ユーザーが迷わない明確な選択肢の提示
- パフォーマンス: 認証状態判定の高速化
- ログ: 各認証フローの適切なログ記録