2016-08-03 18 views
0

私は、アプリケーションの更新電子メール機能を実装しています。現在および将来の電子メールを含むフォームを充填することによって、電子メールの更新のための更新プログラムのユーザーメールを実装するためのベストプラクティス

ユーザーの要求: はここに私のDBテーブル

users: id, username, password, email, is_verified 
email_verification: id, user_id, new_email, token 

プロセスです。

アプリケーションはトークンを生成し、関連付けられたデータとともにemail_verificationに保存します。その後、アカウントに電子メールを送信します。 (電子メールの提示通知、将来の検証)。

ユーザーが確認すると、アプリがトークンの検証やその他のものをチェックしてからusersにメールを置き換えます。最後に、すべてのデバイスでユーザーセッションをログアウトして再認証します。

私の質問です:より洗練されたソリューションを手に入れることはできますか? (役に立ったとすれば、私はlaravelを使用しています)

答えて

0

これを行うには、最初に古い電子メールに電子メールを送信するのが良いでしょう。ユーザーが電子メールを変更し、電子メールのリンク上でトークンを生成して値を格納し、新しい電子メールアドレスに別の電子メールを送信します。そこでは、電子メールを更新するリンクをクリックします。チェックの際にあなたのアプリケーションにトークンが表示され、その後、新しい電子メールの

リンクを更新:エンコード リンク/法(トークン)/(old_email)/(NEW_EMAIL)//ご注文を

お使いのコントローラで210

各セグメントを取得し、エンコードされた値が改ざんされている場合ので、それは動作しません

を必要に応じて、それらは塩を使用デコード

EDIT: はあなたのDB内のすべての3つのセグメントを検証し、すべての3の場合トークンを削除するか、トークンフィールドを他の任意の数字に設定してください。更新後に再びリンクをクリックすることはできません。

+0

私はこの方法を使うのが好きでしたが、より長い時間、メールにアクセスできます – orekelewa

関連する問題