在ASP.NET Core MVC中过期之前刷新ID令牌

时间:2019-07-09 18:04:53

标签: asp.net-core cookies oauth-2.0 oidc

我正在研究一个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

1 个答案:

答案 0 :(得分:0)

您不需要刷新id令牌。 ID令牌包含有关最终用户的信息,一旦您的客户端应用从OpenID提供程序获取ID令牌,它将验证该令牌,对该令牌进行解码并使用Cookie身份验证登录用户。用户信息被序列化并存储在应用程序cookie中,该cookie将在浏览器的每个下一个请求中发送,以保留用户的基本配置文件信息和身份验证状态。

默认情况下,创建的cookie具有基于会话的生存期-即,直到关闭浏览器/选项卡。因此,id令牌将在第一次使用,然后cookie身份验证接管。

通常,我们考虑的是如何刷新访问令牌。访问令牌允许访问某些已定义的服务器资源,我们可以使用刷新令牌在过期后更新访问令牌。

您提供的文章显示了如何刷新访问令牌,并将ASP.NET会话cookie的生存期与OIDC访问令牌对齐(控制cookie的生存期)。这与您的情况无关。