2

リソース所有者フローを使用して、IdentityServer v4 を使用して ASP.NET アプリケーションの承認を処理しています。

と の 2 つのメソッドをIdentityServer4.Core.Services.IProfileService持つインターフェイスを実装しました。GetProfileDataAsyncIsActiveAsync

トークン エンドポイントにリクエストを送信するGetProfileDataAsyncと、期待どおりに が呼び出されます。この方法を使用して請求を発行します。

ただし、IsActiveAsyncメソッドは呼び出されません。このメソッドを実装して、ユーザーがデータベースでアクティブかどうかを判断したいと思います。このメソッドはどの時点で呼び出されることになっていますか?

IdentityServer ソースのコメント (以下を参照) は、トークンの発行中に呼び出される必要があることを示唆していますが、トークンを要求するときにメソッドは呼び出されません。私は何かが欠けていると思います。どんな助けでも大歓迎です。

    // Summary:
    // This method gets called whenever identity server needs to determine
    // if the user is valid or active (e.g. if the user's account has been
    // deactivated since they logged in). (e.g. during token issuance or 
    // validation).

    Task IsActiveAsync(IsActiveContext context);
4

1 に答える 1