この記事の内容は、SpringBoot のパスワード取得メソッドの実装に関するものです (写真とテキスト)。必要な方は参考にしていただければ幸いです。
私は最近自分のプロジェクトに取り組んでいますが、誰もが知っている機能の 1 つはパスワードを取得することです。このプロセスには非常に多くの落とし穴があるため、ここで私のアプローチを共有します。それで記録してください。
使用テクノロジー: SpringBoot1.5.6、JPA、SpringSecurity4、MySQL、BootStrap など。 。 。
パスワード取得のフローチャート:
まず、パスワード取得の基本原則を紹介します:
## この方法を自由に使用できます。
#パスワード取得インターフェイスは次のとおりです:
ステップ 2: 入力されたアカウントが有効かどうかを確認します
次は、生成された URL リンク (存在する場合) です:
backPassword:
Step 3: リセットテーブルにアカウントが存在するかの判定 リセットテーブルはURL(有効期限、sid、アカウント情報など)を保存するテーブルです。
#これの目的は、データが存在し、削除されていない場合、次回パスワードを取得するときに、同じアカウントで異なる SID を持つ 2 つのデータが生成されることです。欠点は次のとおりです。URL が 2 つあるため、メールを送信するときにどの URL を返せばよいかわかりません。
ステップ 4: メールを送信します。最初に見てみましょう。次の効果:
#次のステップは重要な部分です。まず、/user/reset_password を確認します。はリクエストの後にパラメータが続くものなので、覚えておいてください!
リクエストを記述する必要があります。ルートは /user/reset_password ですが、同時に SpringSecurity でリクエストを許可する必要があります。検証プロセスは次のとおりです。まず、リクエストから渡された sid および userName (つまり、電子メール アドレス) をデータベース内の sid およびアカウントと比較し、さらにその時間が 30 分の有効期間内であるかどうかを比較します。これらが満たされている場合は true を返し、そうでない場合は false を返します。ここでスペースが数字に置き換えられることに注意してください。これは、HTML がバックエンドに渡されるときに数字が自動的にスペースに変換されるためです。数字に置き換えられないと、常に検証が失敗します。 ! ! ! true が返されると、検証 URL が合格したことを意味し、パスワード リセット インターフェイスにジャンプします:注:ここでは検証がありません。最適化のため、if else のネストはそれほど多くないはずです。
リクエスト ルートを解放します。そうでない場合は、リンクをクリックすると、ログイン インターフェイスにジャンプします。リセット ページに移動します。2 回入力したパスワードが一致しない場合、次のプロンプトが表示されます。
もちろん、厳密を期すために、入力が一致している場合は、情報が更新されます。
ここには何もありません。データベースに保存する前に MD5 ソルトを使用してパスワードを暗号化し、保存することに注意してください。正しいパスワードを 2 回入力した場合の影響を見てみましょう。ページでは、変更は成功し、バックグラウンドでのエラーは報告されません。現時点では、新しいパスワードを使用してログインしてください。
以上がSpringBootのパスワード取得に基づくメソッド実装(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。