UC-701: ユーザーアカウントを作成する
| 項目 | 内容 |
|---|---|
| 領域 | アイデンティティ |
| アクター | 未認証ユーザー |
| レベル | サブ機能 |
| 事前条件 | なし |
| 成功時の保証 | ユーザーアカウントが作成され(未確認状態)、確認メールが送信されている。利用規約への同意が記録されている |
| トリガー | 呼び出し元のユースケースがアカウント情報を渡す |
主成功シナリオ
- 呼び出し元のユースケースがアカウント情報(メールアドレス、パスワード)と利用規約への同意をシステムに渡す
- システムがパスワードの要件を検証する
- システムがユーザーアカウントを作成する(状態: 未確認。利用規約の同意バージョンと同意日時を記録)
- システムがメールアドレス宛に確認メール(ワンタイムリンク付き)を送信する
- 呼び出し元のユースケースに制御を返す(アクターは即座にサービスを利用開始する。メールアドレスの確認は非同期で行われる → UC-703)
拡張(代替フロー)
2a. パスワードが要件を満たさない場合:
- システムがエラーを通知する
- アクターがパスワードを再入力する
3a. メールアドレスが既に登録されている場合:
- システムは呼び出し元に正常応答を返す(応答を変えない)
- システムが既存のメールアドレス宛に「既にアカウントが存在します。ログインするか、パスワードをリセットしてください」という通知メールを送信する
業務ルール
- ユーザー列挙防止: メールアドレスの登録済み/未登録に関わらず、呼び出し元への応答を同一にする。登録状況の差異はメールの内容でのみ通知する
- パスワード要件: 最小12文字
- メールアドレスは大文字・小文字を区別しない(正規化して保存)
- 利用規約への同意はアカウント作成の必須条件。同意なしのアカウントは存在しない。同意バージョンと日時をユーザーに紐づけて記録する
関連要件
- → UC-703 メールアドレスの所有権を確認する — アカウント作成後の非同期確認
- → UC-901 代行事業者のトライアルを申請する — 呼び出し元の一つ