刷新页面后登出,如何在重新加载后保持用户登录?
这是 header.component.html:
<li class="nav-item dropdown-menu-left" ngbDropdown dir="rtl">
<a href="javascript:void(0)" class="nav-link" ngbDropdownToggle> John Smith </a>
<div class="dropdown-menu dropdown-menu-left">
<a class="dropdown-item" (click)="onLoggedout()">logout</a>
</div>
</li>
这是注销功能:
onLoggedout() {
this.authService.logout();
this.router.navigate(['/login'])
}
这是 authService:
logout(){
firebase.auth().signOut();
this.token = null;
}
这是 auth-guard.ts:
constructor(private router: Router, private authService:AuthService) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.authService.isAuthenticated();
}
最佳答案
我了解您的问题,您需要按照以下步骤操作:
Firstyl 当您登录时,您需要将您的
token
存储在本地存储中。 (我假设token
关键字作为用户登录的标志)注销后使用
清除本地存储localStorage.clear();
根据您的情况,一旦按下浏览器用户的
后退按钮
,登录前将不允许访问页面,为此您需要在 authGuard 文件中进行如下更改constructor(private router: Router, private authService:AuthService) { } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){ if(localStorage.get('token')) return true; else return false; }
如果仍然需要任何帮助,请告诉我。
关于angular - 我不想在重新加载页面 Angular 4 后注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45818367/