在angular2中,如果用户未登录,我该如何重定向用户,这样他们就不会到达登录的视图组件代码?

时间:2016-08-04 11:25:07

标签: angular

在angular2中,如果用户未登录,我该怎样才能重定向用户,这样他们就无法访问已登录的视图组件代码?

我不希望该组件被击中。 如果未经过身份验证,我希望用户重定向到主页。

我可以在app.ts文件中执行此操作吗?

1 个答案:

答案 0 :(得分:2)

您可以使用CanActivate防护来检查用户是否已登录,然后再导航到路线。

创建guard.service.js

import { CanActivate }    from '@angular/router';

@Injectable()
export class AuthGuard implements CanActivate {
  canActivate() {
    //Here check if the user is logged in
    return isLoggedIn;
  }

现在导入AuthGuard类,并使用路由组件中的AuthGuard

{
  path: 'admin',
  component: OnlyForLoggedInUsers,
  canActivate: [AuthGuard]
},

在这里,您可以找到有关实施canActivate后卫的更多详细信息:https://angular.io/docs/ts/latest/guide/router.html#!#can-activate-guard