我正在研究一个aspnet核心MVC项目,该项目调用由OAuth2.0保护的API。
我能够使用以下代码访问API并正确获得响应,
Startup.cs
strictNullCheck
Controller.cs
我正在从HttpContext获取令牌。
但是令牌会在几个小时后过期。有没有一种方法可以在过期之前刷新ID令牌。 我在堆栈溢出中尝试了一些示例。但是没有一个对我有用。
是否有一种方法可以在不使用下面示例中使用的IdentityModel的情况下使其正常工作? https://github.com/mderriey/aspnet-core-token-renewal/blob/master/src/MvcClient/Startup.cs
答案 0 :(得分:0)
您不需要刷新id令牌。 ID令牌包含有关最终用户的信息,一旦您的客户端应用从OpenID提供程序获取ID令牌,它将验证该令牌,对该令牌进行解码并使用Cookie身份验证登录用户。用户信息被序列化并存储在应用程序cookie中,该cookie将在浏览器的每个下一个请求中发送,以保留用户的基本配置文件信息和身份验证状态。
默认情况下,创建的cookie具有基于会话的生存期-即,直到关闭浏览器/选项卡。因此,id令牌将在第一次使用,然后cookie身份验证接管。
通常,我们考虑的是如何刷新访问令牌。访问令牌允许访问某些已定义的服务器资源,我们可以使用刷新令牌在过期后更新访问令牌。
您提供的文章显示了如何刷新访问令牌,并将ASP.NET会话cookie的生存期与OIDC访问令牌对齐(控制cookie的生存期)。这与您的情况无关。