使用AngularFire 2 Auth进行Angular 2路径限制

时间:2016-08-27 16:36:37

标签: angular firebase firebase-authentication angularfire2

我试图限制路由仅供经过身份验证的用户使用。到目前为止,我已在每个路由组件构造函数中添加了一个服务调用,以检查用户是否已记录。如果没有,您将被重定向到登录路由(索引):

logCheck(){
  this.af.auth.subscribe(user => {
    if(!user){
      this.router.navigate(['']);
    }
});

有效。但是我不确定是否使用每个路由组件的构造函数是正确的做法,因为实际上是在被踢出之前加载组件。 有没有更好的方法呢?就像在app.routes const中使用额外的参数一样?

1 个答案:

答案 0 :(得分:3)

您可以使用Guard,它遵循相同的逻辑但是与路由器一起使用,这样当有人试图访问路由时,如果服务布尔值未设置为true,那么您将被重定向。

检查angular.io路由器文档的这一部分:https://angular.io/docs/ts/latest/guide/router.html#!#guards

有关于如何做到这一点的例子,但是你已经完成的事情应该非常快。

相关问题