具有本地存储的角度2认证

时间:2017-06-12 06:10:11

标签: angular

  

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

1 个答案:

答案 0 :(得分: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;
    }
  }
}