簡體   English   中英

OpenIddict Asp.net Core 5.0 如何獲取與刷新令牌流相關的主體

[英]OpenIddict Asp.net Core 5.0 How to Get Principal Associated in Refresh Token Flow

我正在使用刷新令牌流,它按設計工作,我可以在其中獲取刷新令牌,然后使用它來獲取新的訪問令牌。

在刷新令牌調用上生成新的訪問令牌時,我想訪問新生成的訪問令牌的 OpenIddictTokens.Id。

我想我可以使用如下所示的 OpenIddictServerEvents.ApplyTokenResponseContext 事件來做到這一點,但返回的 Principal 是 null,所以我無法獲取 Token Id。

我已經嘗試了一堆其他的服務器和驗證事件,但似乎找不到一個可以讓我獲取新訪問令牌的令牌 ID 的事件。 我錯過了什么嗎?

.AddServer(options =>
{
   ....
   options
       .AllowClientCredentialsFlow()
       // .AllowAuthorizationCodeFlow()
       //     .RequireProofKeyForCodeExchange()
       .AllowRefreshTokenFlow();

   options.AddEventHandler<OpenIddictServerEvents.ApplyTokenResponseContext>(builder =>
       builder.UseInlineHandler(
           context =>
           {
               var principal = context.Principal; //Principal is null
               principal.GetTokenId();
               return default;

           })
   );
             

我已經嘗試了一堆其他的服務器和驗證事件,但似乎找不到一個可以讓我獲取新訪問令牌的令牌 ID 的事件。 我錯過了什么嗎?

您可以使用具有RefreshTokenPrincipalProcessSignIn事件。 只需確保以高順序注冊您的事件處理程序,以確保在調用處理程序之前將令牌標識符附加到主體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM