2017-02-20 18 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> 

は、タイマーを起動し、ITE 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しかし、単一のユーザーIDに対して複数のトークンがある場合、サーバー側でトークンをクリアするには、同じバックエンドを持つWebアプリケーションとモバイルアプリケーションを使用するユーザーの場合API。 – Dragon

関連する問題