@Luxがコメントで述べたように、ユーザーアクティビティの検出を実装する必要があります。 keypress
、mousemove
、scroll
などのようなイベントをwindow
要素に見ることができます。活動に関するものではなく、ページにフォーカスがある場合は、Page Visibilty Apiと考えることができます。アプリケーションとのやり取りについてもっと詳しく知りたい場合は、おそらく移行のようなイベントを観察してください。
ユーザーアクティビティがない場合にのみ、Ember.debounce
を使用してOAuth2PasswordGrantAuthenticator invalidate()
メソッドを呼び出します。
おそらくApplication Instance Initializersで実装するのが最適です。このような
何か(テストしていません):
// app/instance-initializers/logout-if-inactive.js
export function initialize(applicationInstance) {
var session = applicationInstance.lookup('service:session');
var logoutAfter = 15 * 60 * 1000 // in milliseconds
var logout = function() {
Ember.run.debounce(session, 'invalidate', logoutAfter);
}
window.onmouseevent = logout;
window.onkeypress = logout;
}
export default {
name: 'logout-if-inactive',
after: 'session',
initialize: initialize
};
理由だけではなく、 '.invalidate()'自分自身を呼び出すことはありませ? – Lux
@Lux私は喜んでそれを行うでしょう。非アクティブを検出するにはどうすればよいですか? – eight
['refreshAccessTokens:false'](https://ember-simple-auth.com/api/classes/OAuth2PasswordGrantAuthenticator.html)を設定して、自動リフレッシュを無効にしたと考えましたか? – jelhan