2017-02-20 10 views
1

Я пишу приложение для нокаута с 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 часа? Мне интересно, как использовать токены обновления или выполнить сеансы в приложении.

+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 ОИТ сбрасывает таймер и отсутствие активности он срабатывает тайм-аут, где вы можете поставить логику выхода из системы.

+0

уверен, что я реализовал sth, как это, но с использованием сеанса и информацией о деятельности. Проблема в том, что access_token по-прежнему остается действительным на стороне сервера – Pawel

+0

Он останется в силе до истечения срока его действия. Продолжайте кратковременную проверку маркера и очистите access_token при выходе из системы ... все, что вы определили при создании токена, хранится в самом access_token и ничего не хранится на сервере. см. это для получения дополнительной справки https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/individual-accounts-in-web-api и этого http://stackoverflow.com/questions/ 7030694/why-do-access-tokens-expire/7035926 # 7035926 –

+0

@VivekSingh, но как я могу очистить токен на стороне сервера, когда они являются множественными маркерами против одного пользователя, означает, что в случае использования пользователем веб-приложения и мобильного приложения с таким же бэкэнд апи. – Dragon

Смежные вопросы