-2
「我有兩個組件1.register 2.login。 我有一個本地存儲器,它將所有用戶信息保存在註冊組件中,我需要從登錄名認證註冊用戶組件到家庭組件,我正在處理角2如何做到這一點。我把所有的用戶從寄存器組件保存到本地存儲,從登錄組件我需要檢查用戶是否存儲在本地存儲,然後導航到家庭組件。「角度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;
}
}
}