[英]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 的事件。 我錯過了什么嗎?
您可以使用具有RefreshTokenPrincipal
的ProcessSignIn
事件。 只需確保以高順序注冊您的事件處理程序,以確保在調用處理程序之前將令牌標識符附加到主體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.