2017-06-12 83 views
-2

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

回答

0

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