【问题标题】:OpenIddict Asp.net Core 5.0 How to Get Principal Associated in Refresh Token FlowOpenIddict Asp.net Core 5.0 如何在刷新令牌流中获取主体关联
【发布时间】:2021-06-02 07:51:42
【问题描述】:

我正在使用刷新令牌流,它按设计工作,我可以获得刷新令牌,然后使用它来获取新的访问令牌。

当在刷新令牌调用上生成新的访问令牌时,我想访问新生成的访问令牌的 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;

           })
   );
             

【问题讨论】:

    标签: c# asp.net-core oauth openiddict


    【解决方案1】:

    我尝试了一堆其他的服务器和验证事件,但似乎找不到一个事件可以让我获取新访问令牌的令牌 ID。我错过了什么吗?

    您可以使用具有RefreshTokenPrincipalProcessSignIn 事件。只需确保以高顺序注册您的事件处理程序,以确保在调用您的处理程序之前将令牌标识符附加到主体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 2017-05-09
      • 2018-03-30
      • 2019-12-15
      • 2020-07-06
      • 1970-01-01
      • 2018-03-22
      • 2017-07-01
      相关资源
      最近更新 更多