簡體   English   中英

IdentityServer4獲取訪問令牌

[英]IdentityServer4 get access token

是否可以從IExtensionGrantValidatorICustomTokenRequestValidator實現獲取生成的訪問令牌,或者我必須實現另一個驗證程序? 我找不到可以從中獲取訪問令牌的任何屬性。

好吧,在最初從IdentityServer檢索它的上下文中,令牌位於返回的TokenResponse實例的AccessToken屬性中。

在通過IdentityServer進行身份驗證的ASP.NET Core應用程序中,它來自IdentityServer的事實是無關緊要的。 通常,要檢索訪問令牌,請使用:

using Microsoft.AspNetCore.Authentication;

...

var token = await HttpContext.GetTokenAsync("access_token");

這是一種解決方法,具體取決於:IdentityServer4.AccessToken驗證2.7 + IdentityModel 3.10

    services.AddScoped(provider =>
                {
                    var httpService = provider.GetService<IHttpContextAccessor>();

                    var token = httpService.HttpContext.Request.Headers["Authorization"][0].Remove(0, "Bearer ".Length);
                    var userGuid = Guid.Parse(httpService.HttpContext.User.FindFirst("sub").Value);

                    // Use token 

                });

暫無
暫無

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

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