一般ユーザー登録(メール先行型)
エンドユーザーがユーザー登録画面で、メールアドレスを入力して登録ボタンを押す。
エンドユーザーテーブルにメールアドレスに紐づくレコードが存在しない
エンドユーザーテーブルに新レコードを作成。(新IDの自動生成とメールアドレスの登録。ステータスを初期状態に)
ハッシュコードを作成する。(新ID,日時,ランダム値などからハッシュコードを生成。URL形式にする)
メールアドレスへハッシュコード付きの登録URLを送信する。
エンドユーザーテーブルにハッシュコード、有効日時、ステータス=「メール送信」を登録する
エンドユーザーテーブルにメールアドレスに紐づくレコードが存在する場合
ステータスが「メール送信」である場合
ハッシュコードを作成する
メールアドレスへハッシュコード付きの登録URLを送信する。
エンドユーザーテーブルにハッシュコード、有効日時、ステータス=メール送信を登録する
ステータスが「メール送信」以外である場合
ログイン画面にリダイレクトする
ユーザー登録画面に「メールを確認してください」のメッセージを表示する。
エンドユーザーは届いたメールから登録URLをクリックする
URLからハッシュコードを取得する
エンドユーザーテーブルをハッシュコードで検索し、レコードを取得する
レコードが存在する場合
レコードから有効日時とステータスを取得する
ステータスが「メール送信」以外である場合
ログイン画面にリダイレクトする
有効日時が切れている場合
期限切れフラグをONにする。(メールアドレスの再登録を促す)
正常
名前やパスワードを入力する正式登録画面を表示する
レコードが存在しない場合
エラー画面へリダイレクトする
正式登録画面でエンドユーザーは名前や住所、パスワードを入力して登録ボタンを押す。
入力のバリデーションにてエラーがある場合
正式登録画面を再表示する:エラーメッセージ付き
入力エラーがない場合
エンドユーザーテーブルからレコードを取得する
レコードに名前、住所、パスワードなどをセットする
ステータスに「登録済み」をセットする。
正式登録完了のメッセージをメール送信する。
登録完了画面を表示する。(ログインリンクあり)
エンドユーザーは「ログイン」リンクを押し、ログインする。