.net 在identityserver4中使用脱机_访问作用域内省令牌

.net 在identityserver4中使用脱机_访问作用域内省令牌,.net,identityserver4,openid-connect,.net,Identityserver4,Openid Connect,在使用自己定义的范围时,我设法反思了访问令牌。我只需要发布到具有基本授权的端点,用户名是我的作用域名称,密码是我的作用域api密码。但是offline_access是IdentityServer定义的默认作用域,我如何反思它?是否有任何方法可以使用api机密自定义脱机访问范围?我需要使用脱机访问,因为只有此作用域才能为我提供刷新令牌。您可以像这样创建刷新令牌 创建您的索赔 var issuer = HttpContext.GetIdentityServerIssuerUri();

在使用自己定义的范围时,我设法反思了访问令牌。我只需要发布到具有基本授权的端点,用户名是我的作用域名称,密码是我的作用域api密码。但是offline_access是IdentityServer定义的默认作用域,我如何反思它?是否有任何方法可以使用api机密自定义脱机访问范围?我需要使用脱机访问,因为只有此作用域才能为我提供刷新令牌。

您可以像这样创建刷新令牌

创建您的索赔

var issuer = HttpContext.GetIdentityServerIssuerUri();

                var tokenObj = new Token
                {
                    Issuer = issuer,
                    CreationTime = DateTime.UtcNow,
                    Lifetime = client.AccessTokenLifetime,
                    ClientId = "9a7519a1e0224b18bb28d0fe0a00d038",
                    Claims = claims,
                    AccessTokenType = AccessTokenType.Reference,
                };

var client = _clientStore.FindClientByIdAsync("{clientId}").Result;

var refereshToken = _refreshTokenService.CreateRefreshTokenAsync(claimsPrincipal, tokenObj, client).Result;
IRefreshTokenService\u refreshTokenService; IClientStore\u客户商店


这两个都被注入构造函数。

您可以像这样创建一个刷新令牌

创建您的索赔

var issuer = HttpContext.GetIdentityServerIssuerUri();

                var tokenObj = new Token
                {
                    Issuer = issuer,
                    CreationTime = DateTime.UtcNow,
                    Lifetime = client.AccessTokenLifetime,
                    ClientId = "9a7519a1e0224b18bb28d0fe0a00d038",
                    Claims = claims,
                    AccessTokenType = AccessTokenType.Reference,
                };

var client = _clientStore.FindClientByIdAsync("{clientId}").Result;

var refereshToken = _refreshTokenService.CreateRefreshTokenAsync(claimsPrincipal, tokenObj, client).Result;
IRefreshTokenService\u refreshTokenService; IClientStore\u客户商店


这两个都被注入构造函数。

我找到了一种方法来反思离线访问范围令牌。我希望这能帮助像我这样的人。让我说我的密码

    public static IEnumerable<ApiResource> GetApis()
    {
        return new List<ApiResource>
        {
            new ApiResource("api1", "My API")
            {
                ApiSecrets = { new Secret("secret".Sha256()) }
            }
        };
    }
公共静态IEnumerable

请求刷新令牌时,

在进行自省时,请注意,在基本授权期间将使用用户名api1和密码机密

在撤销引用令牌或刷新令牌时,请注意在基本授权期间将使用用户名ro.client和密码secret,


我找到了一种内省脱机访问范围令牌的方法。我希望这能帮助像我这样的人。让我说我的密码

    public static IEnumerable<ApiResource> GetApis()
    {
        return new List<ApiResource>
        {
            new ApiResource("api1", "My API")
            {
                ApiSecrets = { new Secret("secret".Sha256()) }
            }
        };
    }
公共静态IEnumerable

请求刷新令牌时,

在进行自省时,请注意,在基本授权期间将使用用户名api1和密码机密

在撤销引用令牌或刷新令牌时,请注意在基本授权期间将使用用户名ro.client和密码secret,