如何刷新访问令牌

2023-11-28

我有一个 Asp.net2.0核心 Web 应用程序连接到 Identity server 4 应用程序进行身份验证。还有一个涉及到的API。 API 使用访问令牌作为承载令牌。

我的创业:

services.AddAuthentication(options =>
            {
                options.DefaultScheme = "Cookies";
                options.DefaultChallengeScheme = "oidc";
            })
            .AddCookie("Cookies")
            .AddOpenIdConnect("oidc", options =>
            {
                options.SignInScheme = "Cookies";
                options.Authority = idsEndPoint;
                options.RequireHttpsMetadata = false;
                options.ClientId = "testclient";
                options.ClientSecret = "secret";
                options.ResponseType = "code id_token";
                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.Scope.Add("testapi");
            });

控制器:

在我的控制器中,我可以看到我的令牌,它们都已填充,我可以在 API 调用中使用访问令牌。

var accessToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.AccessToken);
var refreshToken = await HttpContext.GetTokenAsync(IdentityConstants.HttpContextHeaders.RefreshToken);
var idToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.IdToken);

问题:

我的问题发生在访问令牌过期一小时后。看起来它不会自动刷新。我想知道这是否是我的身份验证中的一个设置,会导致它刷新它。但是,我一直无法找出如何强制它在访问令牌过期后刷新它。

我当前的解决方案是自己刷新它,但我本以为这会内置到 cookie 中间件中。


对于自动刷新令牌,添加options.Scope.Add("offline_access"); to AddOpenIdConnect()选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何刷新访问令牌 的相关文章

随机推荐