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

How to intercept UI routes in Angular for user session management?

我们有一个 angular 应用程序,以节点作为后端。我们有一个完成会话管理的身份验证服务器。我们正在使用一个 http 拦截器来检查会话是否有效以执行 http 请求。如果会话已过期,我们将导航到登录页面。这适用于大多数页面,因为我们在 ngOnInit 中有一些或其他 http 请求,因此它们工作正常。但是我想知道当没有加载http请求时如何拦截。我怎么遇到这个?我应该使用 canActivate 吗?任何的意见都将会有帮助。

谢谢

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

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

如果你不想每次都检查,你可以使用local storage保存开始会话日期并检查它是否已过期。