SimpleDetail
📖 2 menit baca

ユーザー登録 — 中央会員管理&SSOハブ

1. ドキュメントの目的

このドキュメントは、会員登録機能とアカウント管理機能の仕様を説明します。会員登録からプロフィール管理まで、すべてのステップを網羅しています。


2. 登録プロセス

2.1 登録手順

  1. 会員は会員管理ハブの登録ページを開きます。
  2. 会員は登録フォームを入力します。
  3. システムはデータを検証します。
  4. システムはアカウントを作成し、unverifiedのステータスを設定します。
  5. システムは確認メールを送信します。
  6. 会員はメール内のリンクをクリックします。
  7. システムはアカウントをactiveのステータスに切り替えます。
  8. 会員はダッシュボードページまたはパッケージ選択ページにリダイレクトされます。

3. 登録フォーム

3.1 必須フィールド

フィールド タイプ 必須 検証規則
完全な名前 テキスト はい 最小 2 文字、最大 100 文字
メール メール はい 有効なフォーマット、システム内で一意、小文字化
パスワード パスワード はい 最小 8 文字、文字と数字の組み合わせ
パスワード確認 パスワード はい パスワードと同じ

3.2 オプションフィールド

フィールド タイプ 説明
電話番号 テキスト 通信用

4. 検証規則

4.1 メール

  1. 有効なメールフォーマットであること。
  2. 小文字化され、トリムされる。
    " Budi@Email.COM " → "budi@email.com"
    
  3. 一意であること。同じメールアドレスを持つアカウントは存在しない。
  4. フロントエンド(UX)とバックエンド(セキュリティ)で検証される。

4.2 パスワード

  1. 最小 8 文字。
  2. 少なくとも 1 つの文字と 1 つの数字を含む。
  3. メールアドレスと同じであることができない。
  4. bcrypt または Argon2 を使用してハッシュ化され、平文で保存されない。
  5. クライアントに平文で送信されることはない。

4.3 完全な名前

  1. 最小 2 文字。
  2. 先頭と末尾にスペースがトリムされる。
  3. スペースのみまたは特殊文字のみで構成されていることはできない。

5. アカウントステータス

ステータス コード 説明
未確認 unverified 新規登録、メール未確認
有効 active メール確認済み、ログイン可能
休止 suspended スーパーアドミンによって非アクティブ化

ステータス遷移:

[unverified] → (確認リンククリック) → [active]
[active]     → (管理者による非アクティブ化)    → [suspended]
[suspended]  → (管理者による復活)       → [active]

6. メール確認

6.1 メカニズム

  • システムは一意の確認トークンを作成します。
  • トークンはメール内の確認リンクとして送信されます。
    https://hub.domain.com/verify-email?token=VERIFICATION_TOKEN
    
  • トークンは一回限り使用可能です。
  • トークンは24 時間有効です。

6.2 メンバーがリンクをクリックした場合

  • システムはトークンを検証します: 有効、未使用、有効期限切れ。
  • 有効の場合: アカウントをactiveに切り替え、トークンを使用済みとしてマークします。
  • 有効期限切れの場合: 有効期限切れのメッセージを表示します。
  • 既に使用済みの場合: "アカウントはすでに有効です。ログインしてください。"と表示します。

6.3 再送メール

  • メンバーはアカウントがunverifiedの場合に再送メールを要求できます。
  • システムは新しいトークンを作成し、新しいメールを送信します。
  • 既存のトークンはトークンが作成されたときに自動的に無効になります。
  • 最大 3 回再送メールが可能です (レート制限)。

7. パスワードを忘れた場合

7.1 フロー

  1. メンバーはパスワードを忘れたページを開きます。
  2. メンバーはメールアドレスを入力します。
  3. システムはメールアドレスを検索します (小文字化)。
  4. メールアドレスが見つかった場合: パスワードリセットリンクを送信します。
  5. メールアドレスが見つからなかった場合: 一般的なメッセージを表示します (メールアドレスが存在しないことを確認しない)。
  6. メンバーがリンクをクリックします。
  7. メンバーは新しいパスワードを入力します。
  8. システムは新しいパスワードを検証します。
  9. システムは新しいパスワードをハッシュ化して保存します。
  10. 他のすべてのアクティブなセッションを終了します。
  11. メンバーはログインページにリダイレクトされます。

7.2 リセットトークンの規則

  • リセットパスワードのトークンは一回限り使用可能です。
  • 有効期限は1 時間です。
  • 新しいトークンが作成されたときに、まだ使用されていないトークンは無効になります。

8. パスワードを変更する (プロフィールから)

8.1 フロー

  1. メンバーはアカウント設定ページを開きます。
  2. メンバーは:
    • 現在のパスワード、
    • 新しいパスワード、
    • 新しいパスワードの確認を入力します。
  3. システムは現在のパスワードを検証します。
  4. システムは新しいパスワードを検証します (登録時と同じ規則を適用します)。
  5. システムは新しいパスワードをハッシュ化して保存します。
  6. 他のすべてのアクティブなセッションを終了します (現在のセッションを除く)。
  7. システムはパスワード変更の通知メールを送信します。

9. メールを変更する

9.1 フロー

  1. メンバーはアカウント設定ページを開きます。
  2. メンバーは新しいメールアドレスを入力します。
  3. システムは:
    • 新しいメールアドレスのフォーマットを検証します。
    • 新しいメールアドレスが現在のメールアドレスと異なることを検証します。
    • 新しいメールアドレスが他のアカウントに使用されていないことを検証します。
  4. システムは新しいメールアドレスに確認メールを送信します。
  5. 旧メールアドレスは使用され続けます。
  6. メンバーが新しいメールアドレスの確認リンクをクリックします。
  7. システムはメールアドレスを新しいメールアドレスに更新します。
  8. システムは旧メールアドレスに通知メールを送信します。

10. プロフィール管理

10.1 プロフィール情報

フィールド 変更可能? 説明
完全な名前 はい
メール はい 再確認が必要
電話番号 はい
プロフィール画像 はい オプション
パスワード はい 特別なフローを使用
メンバーID いいえ システムによって生成され、変更できない
登録日 いいえ システムによって記録される