web-dev-qa-db-ja.com

アカウントを作成し、パスワードを忘れ、パスワードを変更する

Spring Securityは、開発者がWebアプリを保護したい場合に最適です。

ただし、アカウントの作成はどうですか?そして「パスワードを忘れた」?ほとんどのログインページには、これらのリンクと、ユーザー名およびパスワードのフィールドがあります。 Springのデフォルトのログインページにはこれらのリンクがありません...良い場合には、「覚えておく」をサポートできます...

Springは、Create Account、Forgot Password、Change Passwordのこれらのフローをサポートしていますか?答えが「はい」の場合、いくつかのドキュメントを教えていただけますか?

この問題を検索しましたが、何も見つかりませんでした。

ありがとう!

18
user3619976

あなたは完全に正しいです。私の知る限り、これらのフローを実装する「汎用」パッケージはありません。しばらく前にこの種のコードを何度も検索しましたが、何も見つかりませんでした。 @luizcarlosfxは正しいと思います。各アプリケーションには独自のニーズがあるため、すべてのニーズに適合する汎用的なものを書くのは困難です。


編集:「実装するのはそれほど難しくない」などのコメントを見ました。そうだね。ただし、すべてのケースに対応する必要があります。たとえば、ユーザーがすでに存在するアカウントを作成しようとするとどうなりますか?ユーザーが既に存在するアカウントが非アクティブであるアカウントを作成しようとするとどうなりますか?パスワードのポリシーはどうですか? (長すぎる/短すぎる/資本の数など)アクティベーションリンクを含むメールをユーザーに送信するのはどうですか?このリンクをどのように作成しますか?どのように暗号化しますか?リンクをクリックしてアカウントをアクティブにするコントローラーについてはどうですか?そしてもっともっと...


ただし、私はそれを一歩前進させ、ほとんどのフローに答える何かを登録しようとしました-登録、パスワードを忘れた、パスワードを変更するなど、そして何か十分に保護されているので、アプリケーションは簡単にハッキングされる恐れなしにそれを使用できます。

Javaプロジェクトを実装しました。Spring-Securityに基づいたオープンソースです。AリリースバージョンはMaven-Centralにあるため、コンパイルする必要はありませんが、代わりにプロジェクトのmaven-dependencyとしてフェッチできます。

<dependency>
    <groupId>com.ohadr</groupId>
    <artifactId>authentication-flows</artifactId>
    <version>1.5.0-RELEASE</version>
</dependency>

それはあなたの質問に答えると思います...

すべての説明があります(そして、何かが欠けている場合-知らせてください...)

ここで見つける クライアントアプリケーションのコードの例(つまり、使用法)。

これは プロジェクトのメインページ に加えてデモ、そして 別のデモはこちら です(ただし、これはバージョン1.6.1にアップグレードした後、メールでのログインが必要なアプリです「ニース」ドメイン-Nice.com。実際にはデモに使用できません。最初の例を使用してください)。これは、auth-flowsを使用するクライアントWebアプリで、READMEとすべての説明が含まれています。

お役に立てば幸いです。

15
OhadR

appfuse はあなたが望むもののためのツールだと思います。この行はそのドキュメントからのものです:

AppFuseは、次のような多くのアプリケーションに必要な機能を備えています。

  • 認証と承認
  • ユーザー管理
  • 覚えておいてください(ログイン情報が保存されるため、毎回ログインする必要はありません)
  • パスワードリマインダー
  • サインアップと登録
  • SSLスイッチング
  • Eメール
  • 拡張子のないURLファイルのアップロード
  • 汎用CRUDバックエンド
  • 完全なEclipse、IDEAおよびNetBeansのサポート
  • Maven Jettyプラグインによる迅速な起動とデプロイなし
  • Cargoとプロファイルを使用して複数のアプリサーバーとデータベースでテスト可能
0
Dandelion