如何在 Angular 中拦截 UI 路由以进行用户会话管理?



我们有一个以node为后端的角度应用程序。我们有一个身份验证服务器,用于完成会话管理。我们正在使用一个 http 拦截器来检查会话是否处于活动状态以执行 http 请求。如果会话已过期,我们将导航到登录页面。这适用于大多数页面,因为我们在 ngOnInit 中有一些或其他 http 请求,因此它们工作正常。但是我想知道如何在加载时没有http请求时进行拦截。我如何遇到这种情况?我应该使用canActivate吗?任何建议都会有所帮助。

谢谢

是的,您可以使用 Angular 路由器的 canActivate 钩子来执行此操作。您不想在每个组件中重复登录检查代码,可以在路由器配置声明中的应用程序的其他部分中重用 canActivate 。您还可以检查用户是否有权查看此页面。

您还可以做的是发出请求并等待响应,如果响应为 403,则 HTTP 拦截器会路由回登录页面。

如果不想每次都检查,可以使用本地存储来保存开始会话日期并检查该日期是否已过期。

最新更新