2017-06-16 5 views
0

私は、アクセストークンを介してリソースのセットにアクセスするシステムを持っています。したがって、クライアントが特定のリソースにアクセスする必要がある場合、クライアントはトークン(1つのリソース - 1つのトークン)を要求します。私はトークンが流出しても、すぐに非アクティブになるように、一回限りの(または少なくとも時間制限付きの)トークンを作成する必要があります。CQRSシステムで一回限りのクエリを正しく作成する方法は?

CQRSベースのシステムでこれを達成する適切な方法は何ですか?リソースを照会しても、システム状態は変更されません。つまり、クエリハンドラでトークンを無効にすることはできません。していい?

答えて

0

これらは異なる懸念事項です。私はどうなるのか:/トークン情報

  1. エッジが(提供トークンを使用して)権限を確認して は、クエリと一緒に、クエリハンドラを呼び出す
  2. クエリは
  3. は縁が発行した結果を返します。イベント "TokenHasBeenUsed"
  4. エッジはクエリ結果を返します
  5. トークンプロバイダはイベントを消費し、トークンを無効にします。

また、使用しない場合は、しばらくしてトークンを無効にするスケジューリングを構築することもできます。また、使用カウンタなどを用意することもできます。エッジカウンタやクエリハンドラにブレンドする必要はありません。

+0

ご回答いただきありがとうございます。しかし、あなたの言葉では「エッジ」は何ですか?とにかく、ステートレスなJWTトークンが私の問題を解決しました。私は明示的な無効化を行う必要はありません。トークンは短期間で無効になります(私の場合は1分です)。 –

+0

EdgeはフロントラインサービスのAPIレイヤーです。 JWTは当然ながら良い解決策ですが、限界があります。 –

関連する問題