gpt4 book ai didi

Angular 2 - 使用 ng2-idle 注销

转载 作者:行者123 更新时间:2023-12-04 01:52:03 25 4
gpt4 key购买 nike

我的问题是,当单击注销按钮时,ng2-idle 会继续工作。为了尝试解决这个问题,我再次将 setIdle 和 setTimeout 函数设置为 1 秒。

但是,当用户转到登录屏幕时,应用程序需要 1 秒才能超时。

我想知道是否有任何方法可以在单击调用 logout() 函数的注销按钮后强制超时或结束 ng2-idle。

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)
)}
)
}
}

最佳答案

我开始工作了,跟随 logout() 函数的变化:

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();

关于Angular 2 - 使用 ng2-idle 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com