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