ホームページ  >  記事  >  Java  >  SpringBootのパスワード取得に基づくメソッド実装(画像とテキスト)

SpringBootのパスワード取得に基づくメソッド実装(画像とテキスト)

不言
不言転載
2019-02-01 10:57:112847ブラウズ

この記事の内容は、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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。