Angular OpenID:在浏览器加载应用之前重定向到login



我使用Angular -oauth2-oidc的Angular 12,到目前为止我已经成功地设置了身份验证。然而,就在重定向到登录之前,应用程序正在加载中(只是一瞬间,但仍然)。有没有办法完全隐藏应用程序,除非你登录?

如果你正在使用路由,那么你可以考虑使用守卫来防止在用户未经授权的情况下加载任何路由。一个守卫看起来像这样

class AuthenticatedGuard implements CanActivate {
userLoggedIn = AuthService.isLoggedIn;
canActivate() {
if (this.userLoggedIn) {
return true;
} else {
return false;
}
}
}

然后,为了防止应用程序加载需要授权的路由,在路由模块中,你可以通过canActivate属性单独添加保护,或者甚至将它们作为路由的子路由来节省你的时间,如下所示:

{    
path: '',
component: AppComponent,
canActivate: [AuthenticatedGuard],
children: [
{ path: '', component: HomeComponent }, // Other routes here
]
}

最新更新