角度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;
}
}
}