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
我创建了 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