所以我在MVC4中建立了一个网站,我有一系列的服务,其中我已经构建了一个dll,它包装了所有的调用并自动将xml更改为指定的对象。因此,调用者不会收到 xml,而是会收到一个 CustomReturn 对象,该对象具有 ErrorCode、ErrorMessage、Token 和 Payload,其中的有效负载已经被翻译成一个 List 等。
现在,要对我们的后端服务进行 90% 的调用,需要一个 Token,并且在成功调用返回时,将返回一个新的 Token。为了管理这个令牌,它被存储在一个 cookie 中,每次调用都会传递,这样服务器就可以管理令牌,而不是让浏览器 javascript 来做。
所以我创建了一个位于我的控制器顶部的属性,它查找这个 cookie、解密令牌并将其存储在自定义的 HttpContext.Current.User 中。
最后,我的控制器功能基本上是这样的:
[HttpGet]
public T MyFunction(string venue)
{
var asr = Services.GetSomething(Token, venue);
SetAuthTicket(asr.Token);
return asr.Payload;
}
对不起,很长的背景故事,但这是我的问题所在:
在我的页面上,我有一个功能可以根据用户请求获取和显示数据,然后每 30 秒自动更新相同的数据。
我希望在页面中实现自动注销功能,该功能检测到用户在 x 时间内没有提出请求并将其注销...
最初我打算通过验证令牌来做到这一点,因为在 x 次之后它变得无效。
但是目前自动更新使令牌保持有效,因为它们进行了相同的调用来重置令牌......
问题
在我的站点中实现自动注销功能的最佳选择是什么?我应该创建一个不会重置令牌的调用的单独副本吗?或者我应该编写一些 javascript 来检测鼠标移动或点击或其他东西并以这种方式将它们注销?