質問: WEBサービスにユーザ登録機能を実装します。 WEBサービスによってユーザ登録までの流れはいくつかあると思いますが、 以下の2パターンならどちらが望ましいでしょうか? ****パターン1**** 入力画面(メールアドレス、ユーザ名、パスワードなど) →POST →メアドの重複など、エラーがなければ登録完了 →入力したメアドにリマインダー送信 ****パターン2**** 入力画面(メールアドレスのみ) →POST →入力したメアドにトークン付きのURLを記載し送信、セッションにも登録 →トークンをキーにセッションが存在していればクリック時に入力画面表示(ユーザ名、パスワードなど) →POST →登録完了 →入力したメアドにリマインダー送信 特に、初期入力画面で項目をメアドのみかそれ以外を含むかで迷っています。 アドバイスお願いします。 ~追記~ みなさん回答ありがとうございます。 結論としてパターン2ベースで以下の流れで行うことにしました。 入力画面(メールアドレス、ユーザ名、パスワード) →POST →エラーがなければ入力したメアドにトークン付きのURLを記載し送信、キャッシュに登録 →URLクリック時、トークンをキーにキャッシュが存在していれば入力画面表示(ユーザ名、パスワード) →POST →ここでDBに登録し、リマインダー送信(パスワードに関しては難読化して登録) →登録完了画面表示
回答: 登録時に最初にメールアドレスだけを送るケースはあまり見かけないような気がします。なので、どちらかを選ぶならパターン1ですが、やはりメールアドレスの有効確認は必要だと思うので、パターン3として、 入力画面(メールアドレス、ユーザー名、パスワードなど) →POST →メールアドレス、ユーザー名の重複チェックなど →エラーがなければ仮登録し、入力したメアドに確認のための文言とトークン付きのURLを送信 →トークン付きのURLを開く(GET) →正式登録。確認画面 →登録したメアドにリマインダー送信 このように、最初の入力では仮登録とし、メールアドレスの有効確認(=本人の最終的な同意)が取れた時点で正式登録というパターンが割と多いような気がします。