現状の課題
ユーザー新規登録時に、email認証せずに登録が完了してしまう。
理想
- ユーザー仮登録
- メールアドレス認証
- ログイン処理
の流れでユーザーを登録できるようにしたい。
ユースケース
- ログイン画面
/login
でSign upのリンクを押す - フォームに User ID / Name / Email / Password を入力する
- Sign up ボタンを押す
-> 仮登録完了 - 入力したEmail に 認証URL付きのメールが届く
- ユーザーが認証URLをクリックする
- 認証が成功し、「本登録完了」ページへリダイレクトされる
-> 本登録完了 - ログイン画面にて、ユーザーが指定した1. 「user name or email」と2. 「password」を入力しログインできる
仮登録時のDataの保存場所
- 新規にモデル
user-registration-order
を作成し、そこに保存させる
本登録完了時
-
user-registration-orderに保存されたレコードがuser collectionに保存される。
- その時のstatusは
active
- その時のstatusは
-
仮登録で生成されて本登録までいかなかったorderの処置
- 放置される。
セキュリティ関連
ID/Password の認証機構設定
セキュリティ設定内の ID/Password の認証機構設定にて登録の制限を「制限」にしている場合、新規登録後のユーザーは、管理者によるアカウントの承認が行われるまでApproval Pending(STATUS_REGISTERED)
の状態になります。
「制限」していない場合のユーザーステータス
- ユーザー仮登録時:
STATUS_TEMPORALY
- 本登録完了時:
active(STATUS_ACTIVE)
- ログイン
「制限」している場合のユーザーステータス
- ユーザー仮登録時:
STATUS_TEMPORALY
- 本登録完了時:
Approval Pending(STATUS_REGISTERED)
- 管理者によるアカウントの承認完了時:
active(STATUS_ACTIVE)
- ログイン
参考
-
パスワードリセット機能(Forgot Password?)
- ワンタイムURLの発行
- ワンタイムURLによる認証
- Email送信