タグ別アーカイブ: システムフロー

BtoCサイトにユーザ登録した直後にビギナーズガイドを出す場合の仕組み

・BtoCサイトでユーザ登録をし、仮登録完了メールが届く
・仮登録メール中のURLを開くと、本登録完了の通知が出る
・その直後にページ遷移すると、初回ログイン時にのみビギナーズガイドのページに遷移される

ここまでの流れを極力簡素且つ合理的に処理する手順。

・ユーザ登録完了時に、データベースに入力データが書き込まれる
・その際、ユーザ種別用のINTカラムに仮登録状態を示す数字とハッシュキーが書き込まれる
・仮登録完了メール中に記載する、本登録用URLに上記ハッシュをくっつける
・本登録用のURLにアクセスした際、URL中のハッシュとデータベースのハッシュが合致すると、ビギナーズガイドのページに遷移される
※1 本登録用のURLには、最初に設定したパスワードを入力させるなどのなりすまし防止策を取ること。
または、ユーザ登録完了時にのみセッションにハッシュキーを格納して整合性を厳しくするとか。
※2 ビギナーズガイドが表示される条件:仮登録ユーザであり、ハッシュが合致していること
・ビギナーズガイドページの内部処理で、ユーザ種別を本登録状態にし、もう一度ハッシュキーを書き換える
※ハッシュキーを書き換えるのは、本登録完了画面への重複アクセスを禁止するため
・ハッシュキーは、メールアドレス変更時やパスワード再発行時にも書き換える

いやあ、正社員時代に「ビギナーズガイドどうやって1回だけ表示させるようにする?」との議題が出て
そのときは外注のPGがデータベースに「初回ログイン」のboolカラムを作成して対応したんですわ。
あの時は皆てんやわんやだったしねえ・・・w