2

私は CQRS の大ファンですが、まだ理解できないことがあります。CQRS でのログイン プロセスをどのように説明しますか? これは、クエリ (資格情報の確認) とコマンド (インメモリ/SQL/任意のセッション状態の作成) であるためです。この場合、非同期コマンドを使用することはできません。ログイン プロセスは同期でなければなりません。

それとも、ある種の状態を意味するため、セッションの概念は CQRS に存在しないのでしょうか?

レミ

4

2 に答える 2

8

そもそも、なぜ認証に CQRS を使用したいのでしょうか? それは本当に悪いフィット感です。

代わりに、何らかの認証/承認を使用してコマンド ハンドラーをラップすることになるでしょう。

CQRS はどこにでもあるわけでも、どこにもないわけでもありません。意味のある境界コンテキストで使用されます。通常、ユーザーとセッションの管理はその 1 つではありません。

于 2012-12-11T09:13:09.103 に答える
1

これはあなたの状況に完全に依存します。

問題は、あなたのアプリケーションではログインが何を意味するかということです。

ユーザーが認証され、セッション Cookie がブラウザーに保存されていることを意味するだけの場合は、読み取るだけでそれを実現できます。たとえば、ログイン手順の大部分は、Ajax によるログイン呼び出しを行うクライアント側の JavaScript コードである可能性があります。ログイン呼び出しは、単に読み取りストア (または LDAP ストアなど) から読み取り、真/偽の結果を返します。次に、受信クライアントが Cookie を作成し、ユーザーはログインしていると見なされます。Cookie にはユーザー名情報が含まれている場合もあります。

ログインとは、ログインの記録がイベントとしてデータベースに保存されることを意味する場合、もちろん、ログインとはCommand. ここでは、同期を作成するのが理にかなっていると思いますCommand(これはすべて配管であるため、おそらく別のログインサービスです)。

于 2012-12-10T13:58:16.510 に答える