【发布时间】: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