Ionic - 在应用程序启动时闪烁并显示错误的起始页

Ionic - flashes with wrong starting page on app start

我创建了 2 个路由守卫...一个检查用户是否登录,一个检查用户是否未通过身份验证

当应用程序启动时,它在查找本地存储 cookie 时非常简短地确定用户不存在,因此显示未授权页面(即登录页面)

我想知道解决这个问题的最佳方法是什么 - 在我看来,使用 observable 来查看用户是否已登录的 authguard 是最好的方法,但是在代码运行的那一瞬间,它无法确定并且它想显示一些东西。

谁有类似的issues/creative解决办法。

几个月前我遇到了同样的问题,我通过创建一个 Auth Guard 并返回一个 promise 解决了它...

auth.guard.ts

  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot,
  ): Observable<boolean> | Promise<boolean> | boolean {
    return new Promise(resolve => {
      const userAuthObs = this.afAuth.user.subscribe(user => {
        if (user) {
          resolve(true);
        } else {
          this.router.navigate(['signup']);
          resolve(false);
        }
      });
    });
  }

应用程序在等待此承诺以决定将用户定向到何处时继续正常加载。

您可以在此处观看有关创建授权保护的精彩视频... https://www.youtube.com/watch?v=RxLI9_ub6PM