令牌承载认证 - 在非活动时间后注销

时间:2017-02-20 17:11:40

标签: asp.net session asp.net-web-api2 access-token

我正在用Wep Api作为后端编写淘汰应用程序。我使用此tutorial来实现令牌承载授权,因此我可以访问令牌,但是外部提供了登录功能。 我需要实现的是在一定时间后注销,例如1小时,如果所有时间都活跃 - 经过较长时间 - 10小时。所以我有如下设置:

   OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
        {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromHours(10),     
            Provider = container.Resolve<IOAuthAuthorizationServerProvider>()
        };

它的工作原理 - 10小时后访问被撤销,但如何在非活动1小时后实现注销?我想知道刷新令牌的某些用法或在应用程序中实现会话。

1 个答案:

答案 0 :(得分:0)

  

如何在不活动1小时后实现注销?

你可以尝试这样的事情。

<script type="text/javascript">
var timeout = 3600000; // Timeout in 60 mins.

var timeoutTimer;

// Start timers.
function StartTimers() {    
    timeoutTimer = setTimeout("Timeout()", timeout);
}

// Reset timers.
function ResetTimers() {
    clearTimeout(timeoutTimer);
    StartTimers();
}

function Timeout() {
    // Your logout logic.
}

</script>

<body onload="StartTimers();" onmousemove="ResetTimers();">

</body>

它基本上是在页面加载时它启动计时器并且onmousemove迭代重置计时器,并且在没有活动时它会触发超时,你可以在那里放置你的注销逻辑。