繁体   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