如何在 Angular 2 / Java Spring 引导中处理会话超时

How to Handle Session Timeout in Angular 2 / Java Spring Boot

我们有一个带有 java spring 引导后端的 angular 2 应用程序。在 spring 后端,我们在 YAML 配置文件中设置了 1 小时的会话超时(出于测试目的,我将其更改为 1 分钟)。会话超时后,令牌不再经过身份验证,用户需要再次登录到 resume/start 应用程序。

一旦会话超时,angular 应用程序应将用户重定向到登录页面。无论用户 activity/idle 状态如何,它都应该这样做。

我遇到的问题是如何在会话超时后将 angular 2 应用程序中的用户重定向到登录页面。我想知道在哪里以及如何实施这个?在服务中class?在用户服务 class 中(我有一个用户服务 class 从 spring 后端检索登录的用户信息)。应用中的每个组件都需要检查会话状态吗?

想知道 angular 2.

的最佳实践

谢谢!

用户登录后,您可以启动一个一小时的计时器(可以使用 Observable.timer),并在计时器完成时导航到 login/logout(使用 router.navigate)。

或者您可以创建自定义 Http 服务并将其用于所有后端调用。在自定义服务中,从后端收到错误后导航到 logout/login。 参考