1
내 문제는 로그 아웃 버튼을 클릭하면 ng2-idle이 계속 작동한다는 것입니다. 그리고이 문제를 해결하기 위해 setIdle 및 setTimeout 함수를 1 초 동안 다시 설정했습니다.각도 2 - ng2-idle을 사용한 로그 아웃
그러나 사용자가 로그인 화면으로 전환되면 앱에서 1 초가 걸립니다.
logout() 함수를 호출하는 로그 아웃 버튼을 클릭 한 후 제한 시간을 강제 종료하거나 ng2-idle을 종료하는 방법이 있는지 알고 싶습니다.
logout() {
this.idle.stop();
this._headerService.exit()
.subscribe(
data => {
localStorage.clear();
this._router.navigate(['/auth']);
},
error => console.log(error)
)
}
this.idle.stop()
또는 this.idle.ngOnDestroy();
idle.ts
this.idle.ngOnDestroy();
는 this.idle.stop()
및 this.clearInterrupts();
모두 포함 기능을 사용할 수 있습니다 :
import {Component} from '@angular/core';
import {Router} from "@angular/router";
import {Http, Headers} from "@angular/http";
import {NgClass} from '@angular/common';
import {Observable} from "rxjs/Observable";
import 'rxjs/Rx';
import {HeaderService} from './header.service';
import {Idle, DEFAULT_INTERRUPTSOURCES} from 'ng2-idle/core';
@Component({
selector: 'my-header',
templateUrl: './js/app/header/header.component.html',
styleUrls: ['./js/app/header/header.component.css']
})
export class HeaderComponent {
nome = localStorage['nome'];
constructor(private _router: Router, private _http: Http, private _headerService: HeaderService, private idle: Idle) {
idle.setIdle(5);
idle.setTimeout(1800);
idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
idle.onTimeoutWarning.subscribe((countdown:number) => {
console.log('TimeoutWarning: ' + countdown);
});
idle.onTimeout.subscribe(() => {
console.log('Timeout');
localStorage.clear();
this._router.navigate(['/auth', {sessionExpirate: 'true'}]);
});
idle.watch();
}
logout() {
this.idle.setIdle(1);
this.idle.setTimeout(1);
this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
this._headerService.exit()
.subscribe(
data => {
this.idle.onTimeout.subscribe(() => {
console.log('Timeout');
localStorage.clear();
this._router.navigate(['/auth']);
},
error => console.log(error)
)}
)
}
}
은 ng2-idle 여전히 활성 프로젝트입니까? 나에게 링크 –
을 보내시겠습니까? 그렇습니다. 사이트는 https://www.npmjs.com/package/@ng-idle /core에 https://github.com/HackedByChinese/ng2-idle이 있습니다. – rafaelcb21