角度2认证与本地存储

问题描述:

“我有两个组件1.register 2.login。 我有一个本地存储器,它将所有用户信息保存在注册组件中,我需要从登录名认证注册用户组件到家庭组件,我正在处理角2如何做到这一点。我把所有的用户从寄存器组件保存到本地存储,从登录组件我需要检查用户是否存储在本地存储,然后导航到家庭组件。“角度2认证与本地存储

Angular2提供Route Guard

你想要的是CanActivate

routing.ts

export const routes: Routes = [{ 
    path: 'login', 
    loadChildren: 'app/pages/login/login.module#LoginModule' 
}, { 
    path: 'authorize', 
    loadChildren: 'app/pages/authorize/authorize.module#AuthorizeModule', 
    canActivate: [LoginGuard] 
}]; 

login.guard.ts

@Injectable() 
export class LoginGuard implements CanActivate { 

    constructor(
    private router: Router, 
    private authService: AuthService 
) { } 

    canActivate(
    next: ActivatedRouteSnapshot, 
    state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean { 
    if (this.authService.isLoggedIn()) { 
     return true; 
    } else { 
     this.router.navigateByUrl('/login'); 
     return false; 
    } 
    } 
}