【问题标题】:Angular 2 route restriction with AngularFire 2 Auth使用 AngularFire 2 Auth 的 Angular 2 路由限制
【发布时间】:2016-08-27 16:36:36
【问题描述】:

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

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

它有效。但是我不确定为此使用每个路由组件的构造函数是否是正确的做事方式,因为您实际上是在被踢出之前加载组件。 有更好的方法吗?喜欢在 app.routes const 中使用额外的参数吗?

【问题讨论】:

    标签: angular firebase firebase-authentication angularfire2


    【解决方案1】:

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

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

    有一些关于如何做到这一点的例子,但你已经做到了,应该很快。

    【讨论】:

    • 您找到使用警卫的有效解决方案了吗?如果是这样,请不要忘记验证答案。谢谢
    猜你喜欢
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多