首页 > 解决方案 > Angular 用户登录和会话丢失 - 如何检查和重定向?

问题描述

当用户登录但会话已过期时会发生什么?

在这种情况下,例如,我从会话中丢失了我的用户名,因此名称显示为“null”。

所以我需要重定向回登录对吗?

所以在我的 app-routing.module.ts 中, { path: '**', redirectTo: '' }最后我得到了,一切都运行良好。除了现在 - 当我的会话丢失时,我需要重定向到登录。我该如何配置?我在所有必要的页面上都有 AuthGuard。

我的理解正确吗?如果相关,我打算在稍后阶段添加 JWT。

标签: angularsessionroutes

解决方案


您可以将路由 gaurd 添加到可通过访问令牌访问的模块。在路由中,gaurd 将添加条件用户会话已过期,或者如果已过期则重定向到主页

{ path: 'route', component: Component, canActivate: [AuthGuard] }, 
@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private authService: AuthService, private router: Router) {}

  canActivate() {
    if (/*user is logged in*/) {
      return true;
    } else {
      this.router.navigate(['/Login']);
    }
    return false;
  }
}

推荐阅读