[英]How to Get Access Token and User Info: IdentityServer4 With AspNet Identity
[英]IdentityServer4 get access token
是否可以從IExtensionGrantValidator
或ICustomTokenRequestValidator
實現獲取生成的訪問令牌,或者我必須實現另一個驗證程序? 我找不到可以從中獲取訪問令牌的任何屬性。
好吧,在最初從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.