C# Webapi oauth帐户过期日期无效

C# Webapi oauth帐户过期日期无效,c#,.net,asp.net-web-api,oauth,bearer-token,C#,.net,Asp.net Web Api,Oauth,Bearer Token,我们正在构建一个广泛使用webapi后端的前端应用程序。 在这个应用程序中,我们使用oauth登录用户,并将属于该用户的所有声明存储在非访问令牌中。 在前端,我们使用sentry error logging()来记录所有javascript错误。这包括任何webapi调用,这些调用不知何故出错或没有返回我们期望的结果。对于我们收到的每个错误,我们也会记录cookie信息,其中包括特定用户当时使用的访问令牌 现在,我们看到很多webapi调用出错,因为它们所做的调用是被禁止的。我检查了他们的一些访

我们正在构建一个广泛使用webapi后端的前端应用程序。 在这个应用程序中,我们使用oauth登录用户,并将属于该用户的所有声明存储在非访问令牌中。 在前端,我们使用sentry error logging()来记录所有javascript错误。这包括任何webapi调用,这些调用不知何故出错或没有返回我们期望的结果。对于我们收到的每个错误,我们也会记录cookie信息,其中包括特定用户当时使用的访问令牌

现在,我们看到很多webapi调用出错,因为它们所做的调用是被禁止的。我检查了他们的一些访问令牌,立即注意到信息已经过时,应该在很久以前刷新,因为访问令牌应该已经过期

通过使用:

var ticket=Startup.OAuthOptions.AccessTokenFormat.Unprotect(“tokenhere”);
在调试器内的本地主机上,我可以取消对访问令牌的保护并查看其中的信息

就像我说的,其中一些令牌中的信息包含无效信息,应该已经刷新了。。 然后我注意到它们尚未刷新的原因是因为ExpiresUtc比IssuedUtc大2年以上。换言之;代币在2年后才会过期

下面是其中一个令牌的一些示例信息

IssuedUtc:{20/02/2016 03:04:40+00:00}
到期UTC:{16/11/2018 03:04:40+00:00}
我们使用的是oauth的默认过期时间(20分钟),不知怎的,在管道中它将其设置为大于2年。用户现在可以刷新其声明的唯一方法是,如果他注销并再次登录,显然,在他们这样做之前,它会在前端创建大量错误。
通过调试我自己的令牌,我可以验证它是否将其设置为20分钟,并且我自己从未尝试过复制它。

解决了这个问题,我们在某个地方隐藏了一个控制器方法,该方法正在发行到期日为2年的访问令牌。。Doh