当使用angular-oauth2-oidc打开其他选项卡时,如何保持登录



我正在使用在angular中实现登录功能

angular-oauth2-oidc

和IndentityServer4(.Net核心(。如果我打开选项卡A并登录,然后打开其他选项卡并转到我的网站,但浏览器重定向到登录页面,而我希望它保持在主页中。这是我的代码:

ngOnInit() {
this.checkLogin();
this.getLoginData();
}
checkLogin() {
console.log({ TOKEN: this.oauthService.getAccessToken() })
if (this.oauthService.getAccessToken() != null) {
this.router.navigateByUrl('/home');
} else {
return;
}
}
Login() {
this.oauthService.fetchTokenUsingPasswordFlow(this.username, this.password).then((resp) => {
return this.oauthService.loadUserProfile();
}).then(() => {
let claims = this.oauthService.getIdentityClaims();
if (claims) console.log(claims);
this.rememberMe();
this.toastr.success("Login successful !");
this.router.navigateByUrl('/home');
}).catch((err) => {
this.toastr.error(err.error.error_description)
})
}

rememberMe() {
if (this.remember_me) {
this.cookieService.set('uSnGTX23NJKLX=', this.username);
this.cookieService.set('pWNEAExy2HBXS=', this.password);
} else {
this.cookieService.deleteAll();
}
}
private getLoginData() {
this.username = this.cookieService.get('uSnGTX23NJKLX=');
this.password = this.cookieService.get('pWNEAExy2HBXS=');
this.remember_me = (this.username != '' || this.password != '');
}

有人知道吗?谢谢

  1. 尝试将记录的信息存储在localStorage中
  2. 将oauth服务与角防护装置一起使用:https://github.com/katerinalev1992/Angular6Firebase/blob/master/src/app/services/auth-guard.service.ts

最新更新