【发布时间】:2019-01-23 17:30:33
【问题描述】:
您好,我在摆弄身份服务器 4。我浏览了一些关于复数视图的视频,讲师浏览了一些关于如何使用刷新令牌刷新我的访问令牌的代码。
我的问题是刷新令牌过期时会发生什么?我试图通过设置AbsoluteRefreshTokenLifetime=15 来查看会发生什么,但是当时间过去时,即当我尝试从资源服务器获取数据时,我会得到一个错误。我希望重定向到登录页面
处理过期的刷新令牌的正确方法是什么?如果正确的方法是强制用户登录,那么请提供执行此操作的代码,因为 ids4 默认不执行此操作。我似乎无法让它工作。
new Client
{
ClientId = "mvc2",
ClientName = "MVC Client2",
AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
ClientSecrets =
{
new Secret("secret".Sha256())
},
RedirectUris = { "http://localhost:5001/signin-oidc" },
PostLogoutRedirectUris = { "http://localhost:5001/signout-callback-oidc" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"api1"
},
AllowOfflineAccess = true,
RequireConsent = false,
AccessTokenLifetime = 15,
AbsoluteRefreshTokenLifetime = 15,
IdentityTokenLifetime = 15
}
【问题讨论】:
-
Identity Server 不关心处理刷新令牌。由每个客户端来处理来自资源服务器的 401 过期响应,然后将刷新令牌交换为新的访问令牌。此外,我不认为刷新令牌用于涉及用户的 OpenId 流中,仅在机器到机器流中使用,例如客户端凭据。混合流除外。
-
@VidmantasBlazevicius 客户端凭据是一种不支持刷新令牌的流程。它不需要,因为它知道凭据。对于支持的流:docs.identityserver.io/en/release/topics/…
标签: c# .net-core identityserver4