IdentityServer4获取访问令牌

时间:2017-10-02 07:34:30

标签: c# .net-core identityserver4 asp.net-core-2.0

是否可以从IExtensionGrantValidatorICustomTokenRequestValidator实现获取生成的访问令牌,或者我必须实现另一个验证器?我无法找到可以获取访问令牌的任何属性。

2 个答案:

答案 0 :(得分:0)

好吧,在最初从IdentityServer检索它的上下文中,令牌位于返回的AccessToken实例的TokenResponse属性中。

从通过IdentityServer进行身份验证的ASP.NET Core应用程序中,它来自IdentityServer的事实是无关紧要的。通常,要检索访问令牌,您可以使用:

using Microsoft.AspNetCore.Authentication;

...

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

答案 1 :(得分:0)

这是一种变通方法,具体取决于: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 

                });